首页 > 代码库 > 神奇的位操作

神奇的位操作

基本知识:

& 位与操作

|  位或操作

^ 按位异或操作

~ 位非操作

计算机中数字有原码,反码,补码三种存储格式,通常都是补码形式;

一个正数的原码,反码和补码相同;一个负数,符号位为1,其余各位对原码按位取反,然后加1;

 

技巧总结:

1、n & (n - 1)可以去掉n位表示中的最后一个1,利用这个可以统计一个数的二进制表示中1的个数;

2、每个数乘以2,就相当于向左移动一位。所以2的n次幂就是1向左移动n位;

3、异或操作

a ^ b ^ b = a ^ (b ^ b) = a ^ 0 = a;

a ^ b = b ^ a;

4、已知负数补码,求该十进制负数。假设补码用N表示,则十进制数位(~N)+1;

神奇的位操作