位操作

来源:互联网 发布:mac视频截图快捷键 编辑:程序博客网 时间:2024/05/16 18:43

1. 消去二进制最右侧1

x & (x - 1) 

1.1 用 O(1) 时间检测整数n 是否是2 的幂次

   bool checkPowerOf2(int n) {        // write your code here        return n > 0 && (n & (n - 1)) == 0;    }

1.2 求二进制数表示1的个数。

    public int countOnes(int num) {        int count = 0;        while (num != 0) {            num = num & (num - 1);            count++;        }        return count;    }

1.2 应用 -- 如果要将整数A转换为B,需要改变多少个bit位




0 0
原创粉丝点击