探索JDK

探索Integer番外篇之Integer.numberOfTra

2018-10-25  本文已影响0人  苏小小北

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.后言

要想生活过得去 头上就得顶点绿

其他

本人也是在慢慢学习中,如有错误还请原谅、敬请指出,谢谢!

上一篇下一篇

猜你喜欢

热点阅读