BigDecimal 是否支持位操作?如果是的话,有人可以指出一个很好的教程吗?
如果不是,将 BigDecimal 变量除以 2 的幂的最佳方法是什么?
我想你的意思是BigInteger
这里。BigDecimal
对浮点值使用十进制表示,因此它不适合位操作。
BigInteger
确实有左移和右移操作,.shiftLeft()
分别.shiftRight()
用于乘法/除以两个的幂,所以你可以使用它。
它还具有诸如.bitCount()
, .bitLength()
, .{clear,set}Bit()
, .and()
,.or()
和.andNot()
其他一些操作。但是,不按位不,因为它没有意义。
顾名思义,aBigDecimal
以十进制表示形式存储。因此,除以 2 的幂的最快方法是……除以 2 的幂。您可以左移和右移,但只能以 10 为基数(即使这样,它的行为也与位移位不同,因为它可以产生非整数值)。