An
int用32位表示。因此
-2^31,
2^31-1可以表示和之间的任何值。没有什么超出这个范围。
您可以使用
long(64位)或
BigInteger(可以表示直到内存限制的所有数字的数据结构)。
使用这些结构的缺点(尤其是
BigInteger)是CPU并不总是提供算术指令。因此,添加两个
BigInteger实例比使用
intor
进行操作需要更多的时间
long。如果是
long,如果CPU是32位,则至少需要两条指令来处理。
在旁注。CPU提供了一种更好的方法来计算两者的幂:移位运算。
您可以简单地写:
long value = 0x01L << power;//power of two, all in one simple instruction.
其工作原理如下:移位将位向左移动。因此,如果原始值为:
0001 1011 << 2= 0110 1100
在二进制表示形式中向左移与在数学上等于乘以二相同。



