我出于教育目的在C#中实现了自己的BigNumber类。首先,我打算将其编码为基本算术,关系运算符和某些数学方法。这些值将存储在字节数组中。

你们能给我一些有关如何设计此类课程的提示,或者更确切地说是设计此类课程的正确方法吗?

编辑:

我并不是在寻求有关如何实现特定运算符和方法的帮助。我想知道该类应如何内部构造。

最佳答案

我在C ++中做了一次。我建议您阅读计算机编程的艺术。 Volume 2包含用于实现大数的算法的所有详细信息。这是一个很棒的资源(针对此问题和许多其他问题。)

您附近的大多数公共图书馆(或任何大学图书馆)都应该有这本书。

顺便说一句。无需阅读整本书,如果您只想将其用作所需算法的参考即可。

更新:至于API,您应该尝试模仿.NET中现有API的编号。类似于Int32

至于内部类的设计,它应该非常简单,因为应该有很少的单元交互。您可以将“存储”(字节数组)部分抽象出来,并使用一些通用存储提供程序上的标准迭代器在“数字”上进行迭代。例如,这将允许您更改为使用int数组。如果这样做,则可以自动更改数字的基数,并使您的实现能够为每个数字存储“更多”。这意味着操作的基础不是静态的,而是由“数字”大小决定的。

我在实施我的游戏时很开心,这是一个简单但不错的项目。就我而言,我并不喜欢内部设计。祝好运!

08-06 01:05