C#:我应该如何处理大数字的算术?

C#:我应该如何处理大数字的算术?,c#,.net,string,biginteger,C#,.net,String,Biginteger,我正在写一个应用程序,它涉及大量数字的算术运算。我以前写过一个类,它通过将大数字定义为字符串,然后使用慢速算术字符串函数来简化大数字的处理。这是最好的方法吗?如果没有,我应该如何处理这个问题?C#是否为这种情况内置了任何东西?.NET4将通过BigInteger类型内置此功能。这被认为是非常好的调整,应该表现得非常好 对于3.5及更早版本,您可以从源代码中获取BigInteger的实现。(例如,请参阅并深入到Src/Runtime/Microsoft.Dynamic/Math。)我不知道是否已将

我正在写一个应用程序,它涉及大量数字的算术运算。我以前写过一个类,它通过将大数字定义为字符串,然后使用慢速算术字符串函数来简化大数字的处理。这是最好的方法吗?如果没有,我应该如何处理这个问题?C#是否为这种情况内置了任何东西?

.NET4将通过BigInteger类型内置此功能。这被认为是非常好的调整,应该表现得非常好


对于3.5及更早版本,您可以从源代码中获取BigInteger的实现。(例如,请参阅并深入到Src/Runtime/Microsoft.Dynamic/Math。)我不知道是否已将其调整为与.NET 4 BigInteger类型一样高的级别,但它应该比字符串版本更有效,因为它在内部使用整数类型表示大数字,并使用整数运算执行算术。

如果您可以在.NET 4上执行,则可以提供帮助。如果您使用的是较旧版本的.NET,将对您有所帮助


另请参见C#中关于大整数的部分。

GNU MP bignum库是最快的库之一。它有一个.NET包装器


下面是另一个源代码为.NET的类。

大整数类,我在加密项目中使用过很多次(需要非常大的数字)。效果很好


在4.0以上的dotnet版本中,
System.Numerics.biginger
将帮助您解决此问题

如果使用上述语法得到程序集引用错误,则使用


希望这对你有帮助

Int64不够用吗?您能举一个您想执行的算术操作的例子吗?System.Decimal对您来说足够大吗?可以用它表示的最大值是79228162514264337593543950335。“Humongous”实际上不是一个有用的描述。我们说的是20位数、1000位数、100万位数、10亿位数还是超过10亿位数的数字?每个问题的答案都不一样。几百位数怎么样?