保持数字长度超过 64 位

本文关键字:数字 字长 | 更新日期: 2023-09-27 18:32:35

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

保持数字长度超过 64 位

您可以在 .Net 4.0 中使用 BigInteger

BigInteger 类型是不可变类型,表示 任意大的整数,其值在理论上没有上限或下限 边界。BigInteger 类型的成员与 其他整数类型(字节、Int16、Int32、Int64、SByte、UInt16、 UInt32 和 UInt64 类型(。此类型与其他积分不同 .NET Framework 中的类型,其范围由其指示 最小值和最大值属性。

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

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

尝试使用 BigInteger

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

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

如果您无法使用.NET Framework 4.0,还有许多其他实现,例如 CodeProject 上的这个。

如果您需要更大的

东西,例如最多 +79,228,162,514,264,337,593,543,950,335,也许您可以使用可以容纳最大 96 位整数的 decimal 类型。