位运算总结,&,|,^,~,>>,

位运算操作符介绍

  • & 按位与
  • | 按位或
  • ^ 按位异或
  • ~ 按位取反
  • >> 按位右移
  • << 按位左移
& 运算符
a&b是将两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上。如果两数位数不同,则较短数高位补零,再运算。
9&8 转换成二进制
1001
&1000
结果是1000
【位运算总结,&,|,^,~,>>,】| 运算符
a|b是将两个表达式的值按二进制位展开,对应的位(bit)按值进行“或”运算,结果保留在该位上。如果两数位数不同,则较短数高位补零,再运算。
9|8 转换成二进制
1001
|1000
结果是1001
^ 运算符
a^b是将两个表达式的值按二进制位展开,对应的位(bit)按值进行“异或”运算,结果保留在该位上。如果两数位数不同,则较短数高位补零,再运算。
9^8 转换成二进制
1001
|1000
结果是0001
~ 运算符
单目运算符,对每一位取反
~9的运算为:
~0000000000001001
1111111111110110
所以~9=65526
>> 运算符
右移运算符>>用来把操作数的各二进位全部右移若干位,低位丢弃,高位补0(或1)。例如:
a=9; //对00001001进行右移
a>>3; //右移3位
结果是00000001
<<运算符
左移运算符<<用来把操作数的各二进位全部左移若干位,高位丢弃,低位补0。例如:
a=9; //对00001001进行左移
a<<3; //左移3位
结果是01001000(十进制72)

    推荐阅读