我需要做一些大整数运算。有没有什么类或结构可以表示128位整数并实现所有常用的运算符?
顺便说一句,我意识到decimal可以用来表示一个96位的int。
发布于 2008-10-22 22:26:42
不,.NET <= 3.5中没有任何内容。我希望/期待BigInteger在.NET 4.0中回归。(它是cut from .NET 3.5。)
发布于 2011-03-22 06:02:57
BigInteger现在是C#和.NET 4.0中的朋友的标准部分。请参阅:Gunnar Peipman's ASP.NET blog注意,CPU通常可以在固定时间内更快地处理普通整数,特别是在使用常用的数学运算符(+,-,/,...)时。因为这些运算符通常直接映射到单个CPU指令。
使用BigInteger,即使是最基本的数学操作也是对方法的函数调用,这些方法的运行时间随数字的大小而变化。这是因为BigInteger实现了任意精度的算术运算,这增加了大量但必要的开销。好处是BigIntegers不限于64位甚至128位,而是由可用的系统内存(或大约2^64位的精度,以先到者为准)限制。阅读here。
发布于 2008-10-23 07:41:34
如果您不介意引用J#库(vjslib.dll默认包含在VS中),那么在.NET中已经有了BigInteger的实现
using java.math;
public static void Main(){
BigInteger biggy = new BigInteger(....)
}
https://stackoverflow.com/questions/227731
复制相似问题