出于教育目的,我正在用 C# 实现自己的 BigNumber 类。首先,我打算用它编写基本算术、关系运算符和某些数学方法的代码。这些值将存储在字节数组中。
你们能给我一些关于如何设计这样一个类或者更确切地说是设计这样一个类的正确方法的提示吗?
编辑:
我并不是在寻求有关如何实现特定运算符和方法的帮助。我想知道该类的内部结构。
最佳答案
我用 C++ 做过一次。我建议您阅读计算机编程艺术。 Volume 2具有实现大数算法的所有细节。这是一个很好的资源(对于这个问题和许多其他问题。)
这本书应该可以从您周围的大多数公共(public)图书馆(或任何大学图书馆)获得。
顺便说一句。无需阅读整本书,如果您只是想将其作为所需算法的引用即可。
更新:至于 API,您应该尝试模仿 .NET 中现有的数字 API。类似于 Int32 .
至于内部类设计,应该很简单,因为交互的单元应该很少。您可以抽象出“存储”(字节数组)部分,并使用标准迭代器在某些通用存储提供程序上迭代“数字”。例如,这将允许您更改为使用 int 数组。如果这样做,那么您可以自动更改数字的基数,并使您的实现能够为每个数字存储“更多”。这意味着操作的基础不会是静态的,而是由“数字”大小决定的。
我在实现我的项目时很开心,这是一个简单但不错的项目。就我而言,我并不喜欢内部设计。祝你好运!
关于c# - 设计一个 BigNumber 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5277779/