除前导零之外的整数零位数

dat*_*ili 4 java algorithm bit-manipulation

如果我在Java中有一个整数,除了前导零之外,我如何计算有多少位为零?

我们知道Java中的整数有32位,但是计算数字中的设置位数,然后从32减去不能得到我想要的东西,因为这也包括前导零.

例如,数字5有一个零位,因为它是二进制的101.

sta*_*lue 6

看一下Integer的API文档:

32 - Integer.numberOfLeadingZeros(n) - Integer.bitCount(n)
Run Code Online (Sandbox Code Playgroud)