public static int numberOfTrailingZeros(int i) {
// HD, Figure 5-14
int y;
if (i == 0) return 32;
int n = 31;
y = i <<16; if (y != 0) { n = n -16; i = y; }
y = i << 8; if (y != 0) { n = n - 8; i = y; }
y = i << 4; if (y != 0) { n = n - 4; i = y; }
y = i << 2; if (y != 0) { n = n - 2; i = y; }
return n - ((i << 1) >>> 31);
}
本文介绍了一个计算整数二进制表示中尾随零数量的方法。通过位操作逐步左移并检查高位是否为零来减少待检查的位数,从而实现高效计算。
3853

被折叠的 条评论
为什么被折叠?



