计算Java中的前导零(clz)或前导零(nlz)的数量

use*_*117 3 java binary converter

我需要int 32二进制00100000int 127二进制0111 1111.该变量Integer.toBinaryString仅从1返回结果.如果我以这种方式构建for循环:

for (int i= 32; i <= 127; i + +) {
System.out.println (i); 
System.out.println (Integer.toBinaryString (i));
}
Run Code Online (Sandbox Code Playgroud)

从二进制数字我需要前导零的数量(计数前导零(clz)或前导零(nlz)的数量)我真的意味着确切的数字0,例如:00100000 - > 2和0111 1111 - > 1

Pet*_*rey 9

怎么样

int lz = Integer.numberOfLeadingZeros(i & 0xFF) - 24;
int tz = Integer.numberOfLeadingZeros(i | 0x100); // max is 8.
Run Code Online (Sandbox Code Playgroud)