版本比较
比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
记录一些二进制的应用技巧。
清零一个数的最左边或最右边n位
- 清零最左边n位:
x & ((unsigned)(~0) >> n)
- 清零最右边n位:
x & ((unsigned)(~0) << n)
判断一个整数是不是2的整数次方
代码块 |
---|
bool isPowerOfTwo(unsigned int n) {
return !(x & (x-1));
} |
计算整数的二进制形式中1的个数
代码块 |
---|
int countBitsOne(unsigned int n) {
int ans = 0;
while(n) {
n &= n - 1;
ans++;
}
return ans;
} |
zigzag
参考:整数-zigzag算法
计算两个整数通过位翻转变成同一个数,要翻转的位数是多少位
返回x ^ y
即可。
目录 |
---|