BigDecimal是否支持位操作?如果是的话,有人可以指出一个很好的教程吗?
如果不是,将BigDecimal变量除以2的幂的最佳方法是什么?
答案 0 :(得分:7)
我认为你的意思是BigInteger
。 BigDecimal
对浮点值使用十进制表示,因此不适合位操作。
BigInteger
确实左右移位操作分别为.shiftLeft()
和.shiftRight()
乘以2的幂乘法/除法,因此您可以使用它。
它还有.bitCount()
,.bitLength()
,.{clear,set}Bit()
,.and()
,.or()
,.andNot()
和其他一些操作。但是,没有任何意义,因为它没有意义。
答案 1 :(得分:5)
顾名思义,BigDecimal
存储在十进制表示中。因此,除以2的幂的最快方法是......除以2的幂。你可以左移和右移,但是only in base-10(即使那时它的行为与位移不同,因为它可以产生非整数值)。