保持数字长于64位

时间:2013-09-24 07:03:39

标签: c# numbers

我需要保留长于长或Int64的程序编号。因为如果我使用long,它将只返回0.

3 个答案:

答案 0 :(得分:10)

您可以在.Net 4.0中使用BigInteger

  

BigInteger类型是一个表示一个的不可变类型   任意大整数,其理论上的值没有上限或下限   界限。 BigInteger类型的成员与那些成员紧密相似   其他整数类型(Byte,Int16,Int32,Int64,SByte,UInt16,   UInt32和UInt64类型)。这种类型与其他积分不同   .NET Framework中的类型,其范围由其表示   MinValue和MaxValue属性。

如果您没有移动到.Net 4的奢侈品,那么您可以使用开源项目来帮助您命名为IntX

  

IntX是一个用纯C#2.0编写的任意精度整数库,具有快速 - 约O(N * log N) - 乘法/除法算法实现。它提供了对整数,比较,按位移位等的所有基本算术运算。它还允许解析不同基数中的数字并将它们转换为字符串,也可以在任何基数中。这个库的优点是快速乘法,除法和基本/基本转换算法 - 算法的所有快速版本都基于使用快速哈特利变换的大整数的快速乘法运行O(N * log N * log log) N)时间而不是经典O(N ^ 2)。

答案 1 :(得分:9)

尝试使用BigInteger

  

BigInteger类型是一个表示一个的不可变类型   任意大整数,其理论上的值没有上限或下限   界限。

答案 2 :(得分:5)

如果您使用的是.NET Framework 4.0,则可以使用BigInteger。只需添加对System.Numerics程序集的引用。

如果您无法使用.NET Framework 4.0,还有很多其他实现,例如CodeProject上的this one