4

BigDecimal 是否支持位操作?如果是的话,有人可以指出一个很好的教程吗?

如果不是,将 BigDecimal 变量除以 2 的幂的最佳方法是什么?

4

2 回答 2

8

我想你的意思是BigInteger这里。BigDecimal对浮点值使用十进制表示,因此它不适合位操作。

BigInteger确实有左移和右移操作,.shiftLeft()分别.shiftRight()用于乘法/除以两个的幂,所以你可以使用它。

它还具有诸如.bitCount(), .bitLength(), .{clear,set}Bit(), .and(),.or().andNot()其他一些操作。但是,不按位不,因为它没有意义。

于 2013-07-17T11:08:42.603 回答
5

顾名思义,aBigDecimal十进制表示形式存储。因此,除以 2 的幂的最快方法是……除以 2 的幂。您可以左移和右移,但只能以 10 为基数(即使这样,它的行为也与位移位不同,因为它可以产生非整数值)。

于 2013-07-17T11:08:38.447 回答