This question already has answers here:
Find out number of bits needed to represent a positive integer in binary?
(14个回答)
2年前关闭。
如何获得整数中最高一位的位置而不是值?我知道我可以得到这样的价值:
但是,我想获得最高的一位的位置-在这种情况下,它应该是4(因为二进制中的
(14个回答)
2年前关闭。
如何获得整数中最高一位的位置而不是值?我知道我可以得到这样的价值:
// Prints 8; in 1101, the highest bit is the one denoting 8
int f = 13;
System.out.println("Highest: " + Integer.highestOneBit(f));
但是,我想获得最高的一位的位置-在这种情况下,它应该是4(因为二进制中的
1000
== 8
,所以最高的一位是第四位)。 最佳答案
只需将其与numberOfTrailingZeros结合即可:
int pos = Integer.numberOfTrailingZeros(Integer.highestOneBit(f))
10-08 01:13