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

我正在编写一个应用程序,其中包含大量数字的算术,数字很多。 我之前写过一个类,它通过将大数字定义为字符串然后使用慢速算术字符串函数来简化处理大数字的过程。 这是最好的方法吗? 如果没有,我该如何处理这个问题? C#是否有针对此类情况的内置内容?

.NET 4将通过BigInteger类型内置它。 据说这个调整很好,应该表现得很好。

对于3.5及更早版本,您可以从动态语言运行时源中获取BigInteger的实现。 (参见http://dlr.codeplex.com/sourcecontrol/changeset/view/40021?projectName=dlr#694008并深入研究Src / Runtime / Microsoft.Dynamic / Math。)我不知道这是不是调整与.NET 4 BigInteger类型一样高,但它仍然应该比字符串版本更有效,因为它在内部使用整数类型表示大数字并使用整数运算执行算术。

如果您可以在.NET 4上执行此操作, System.Numeric.BigInteger可以提供帮助。 如果你使用的是旧版本的.NET, IntX会帮助你。

另请参阅这个关于C#中大整数的SO问题 。

GNU MP bignum库是最快的库之一。 它有一个.NET包装器http://gnumpnet.codeplex.com/

这是另一个带源代码的.NET的bignum库 。

我曾多次用于加密项目的Big Integer类(需要非常大的数字)。 效果很好。

http://www.codeproject.com/KB/cs/biginteger.aspx

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

如果使用上面的语法获得程序集引用错误,则使用添加引用

http://www.dllme.com/dll/files/system_numerics_dll.html

希望对你有帮助..!