天天看点

二进制 位运算

如果指定 A = 60; 及 B = 13; 两个变量对应的二进制为:

A = 0 0 1 1 1 1 0 0

B = 0 0 0 0 1 1 0 1

1、&   按位与    对比两数  只有同时为1的情况下返回1  其他返回0

结果为 00001100    12

2、|  按位或  对比两数 只有同时为0的情况下返回0  其他返回1 

结果为 00111101  61

3、^ 按位异或  对比两数  不同时返回1  相同返回0

结果为 00110001  49

4、~按位取反运算符   对一个操作数的每一位都取反 

int为4个字节   0000 0000 0000 0000 0000 0000 0011 1100

             取反 1111 1111 1111 1111 1111 1111 1100 0011 

想要求其值 则 符号位不变 再次取反 加1 

(~A ) 结果为 -61, 二进制为 1100 0011  

5、<<按位左移  左移操作符(<<)将操作数的所有位向左移动指定的位数。如果左移一位 则第二位为第一位  拿0补全其他位

A<<2  结果为240 ,二进制位11110000

5、>>按位右移移  右移操作符(>>)将操作数的所有位向右移动指定的位数。如果右移一位 则第二位为第三位 拿0补全其他位

A>>2  结果为15 ,二进制位00001111

继续阅读