Int128 in .Net?

我需要做一些大的整数math。 是否有任何类或结构代表一个128位的整数,并实现所有通常的操作符?

顺便说一句,我意识到,十进制可以用来表示一个96位整数。

它在System.Numerics中 。 “BigIntegertypes是一个不可变的types,它表示一个理论值没有上限或下限的任意大的整数。”

var i = System.Numerics.BigInteger.Parse("10000000000000000000000000000000"); 

不,.NET中没有任何东西<= 3.5。 我希望/期待BigInteger将在.NET 4.0中返回。 (这是从.NET 3.5中删除的 。)

虽然BigInteger是大多数应用程序的最佳解决scheme,但如果您有性能关键的数值计算,则可以在我的Dirichlet.Numerics库中使用完整的Int128UInt128实现。 如果Int64UInt64太小,但BigInteger太慢,这些types是有用的。

如果您不介意引用J#库(默认情况下包含VS的vjslib.dll),那么已经有了.NET中BigInteger的实现

 using java.math; public static void Main(){ BigInteger biggy = new BigInteger(....) } 

C#PCL库,用于计算大数字,如Int128和Int256。 https://github.com/inTagger/BigMath

BigInteger现在是C#和.NET 4.0中的朋友的标准部分。 请参阅: Gunnar Peipman的ASP.NET博客 。 请注意,BigInteger不支持通常的操作符。 每个运算符都是一个方法调用。 看到这里 。

此外,BigInteger将比longint慢,因为它实现了任意的精度算术,比使用两个64位寄存器的简单类增加了更多的开销。 它的好处是只受记忆和耐心的限制,最终是用uint来计算比特的实现的限制。

这是一个来自.net事务的大整数的实现。

http://msdn.microsoft.com/en-us/magazine/cc163696.aspx

我相信单声道有一个BigInteger实现,你应该能够追踪源。

有一个BigInteger类被定义为你可以使用的IronPython的一部分。

以下是.NET中的Int128实现: https ://int128.codeplex.com/