计算整数的幂
在Java中还有其他方法可以计算整数的幂吗?
我现在使用,但它返回一个,这通常是很多工作,当你只想使用s时,看起来不太干净(然后一个电源也总是会导致一个)。Math.pow(a, b)
double
int
int
有没有像Python一样简单的东西?a**b
在Java中还有其他方法可以计算整数的幂吗?
我现在使用,但它返回一个,这通常是很多工作,当你只想使用s时,看起来不太干净(然后一个电源也总是会导致一个)。Math.pow(a, b)
double
int
int
有没有像Python一样简单的东西?a**b
整数只有 32 位。这意味着其最大值为 。如您所见,对于非常小的数字,您很快就会得到一个不能再用整数表示的结果。这就是使用 .2^31 -1
Math.pow
double
如果需要任意整数精度,请使用 BigInteger.pow
。但它当然效率较低。
当它是2的幂。请记住,您可以使用简单快速的移位表达式1 << exponent
例:
22 = =
2101 << 2
(int) Math.pow(2, 2)
= 1 << 10
= (int) Math.pow(2, 10)
对于较大的指数(超过 31),请改用 long
232 = 1L << 32
= (long) Math.pow(2, 32)
顺便说一句。在 Kotlin 中,你有而不是这样shl
<<
(java) = (kotlin)1L << 32
1L shl 32