如果我想对大于 2^32 的值进行算术运算并且不想使用长整数,我该怎么做?
我可以想到一个方案,通过使用多个变量来实现一个数字来实现数字(我希望的任何位数):
int upper32;
int lower32;
以上2个变量可以表示一个2^64位的值(如果lower 32溢出,我将upper32加1。这会需要一些开销。
有哪些更好的实现方式?
最佳答案
如果你想处理不大于2^64
的整数,那么你可以使用long long
或者unsigned long long
,它们是 64 位整数。
如果你想用更大的数字做算术,看看gmp library ,或者编写自己的多精度算术库(很简单)。
另外,看看 this
关于c - 有哪些方法可以对相应二进制编码大于硬件支持的值进行算术运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30021514/