public int bitCount()
返回此BigInteger的二进制补码表示中与其符号位不同的位数.在BigIntegers上实现位向量样式集时,此方法很有用.
返回:此BigInteger的二进制补码表示中的位数与其符号位不同.
public int bitLength()
返回此BigInteger的最小二进制补码表示中的位数,不包括符号位.对于正BigIntegers,这相当于普通二进制表示中的位数.(计算(ceil(log2(this <0?-this:this + 1))).)
返回:此BigInteger的最小二进制补码表示中的位数,不包括符号位.
这两种方法之间的真正区别是什么?我何时应该使用哪种方法?
我bitCount偶尔会用一个正整数来计算设置位的数量,但我很少使用bitLength,通常在我的意思是bitCount因为描述之间的差异太微妙,我不能立即理解.
Google Attractor: Java BigInteger bitCount vs bitLength
Old*_*eon 10
快速演示:
public void test() {
BigInteger b = BigInteger.valueOf(0x12345L);
System.out.println("b = " + b.toString(2));
System.out.println("bitCount(b) = " + b.bitCount());
System.out.println("bitLength(b) = " + b.bitLength());
}
Run Code Online (Sandbox Code Playgroud)
版画
b = 10010001101000101
bitCount(b)= 7
bitLength(b)= 17
所以,对于正整数:
bitCount()返回数字中的设置位数.
bitLength()返回最高设置位的位置, 即 数字的二进制表示的长度(即log 2).
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |