获取int的最后设置位位置

时间:2014-11-18 11:02:21

标签: java bit-manipulation

有没有一种快速的方法来获取Java中的最后一位整数。可以是位置5的位或只有第5位的整数。

65 -> 64 
11 -> 8 
13 -> 8

没有负数


这是一个措辞问题,它不是最后一点,而是最高位。

2 个答案:

答案 0 :(得分:5)

潜入javadoc,总值得:Integer.highestOneBit

assert 64 == Integer.highestOneBit(65);
assert 2 == Integer.bitCount(65);
assert 6 == 31 - Integer.numberOfLeadingZeros(65);

还有numberOfTrailingZeros等等。

答案 1 :(得分:1)

您可以使用Integer.toBinaryString()方法,它将为您提供整数参数的字符串表示形式,作为基数为2的无符号整数。

String binary = Integer.toBinaryString(value);
char lastBit = binary.charAt(0);