1. 前言
看过Integer.numberOfLeadingZeros(int i)的朋友,都知道求的最高位连续0的个数。相应滴,也就有求最低位连续0的个数(或者说,求最低位1的位置)
2. 源码
直接上代码,
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);
}
这里其实跟求numberOfLeadingZeros(int i)没什么太大区别,思路都是一样,
传送门:https://www.jianshu.com/p/36352010565c
3.后言
要想生活过得去 头上就得顶点绿其他
本人也是在慢慢学习中,如有错误还请原谅、敬请指出,谢谢!
网友评论