获取int的最后设置位位置

ic3*_*ic3 1 java bit-manipulation

有没有一种快速的方法来获取Java中的最后一位整数.既可以是位置5的位,也可以是仅具有第5位的整数.

65 -> 64 
11 -> 8 
13 -> 8
Run Code Online (Sandbox Code Playgroud)

没有负数


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

Joo*_*gen 5

潜入javadoc,总是值得的:Integer.highestOneBit.

assert 64 == Integer.highestOneBit(65);
assert 2 == Integer.bitCount(65);
assert 6 == 31 - Integer.numberOfLeadingZeros(65);
Run Code Online (Sandbox Code Playgroud)

还有numberOfTrailingZeros等等.