位运算
v
&按位与运算符
a&0——a清0
a&1——a保留
&按位与运算符 &&运算符
2&&3值1
2&&3值10——2
作用
1,清0、
2,取数的某些指定位 &1
A 0101 0010 1110 1101
取低字节
0000 0000 1111 1111
3,保留指定位&1
A 1110 1101
保留0 2 6位
0100 0101
|按位或运算符
都为0,结果为0,否则为1
作用
1,数的指定位为1,其他不变
A=a|3——0,1位置1,其他不变
A=a|0x00ff——a的低字节全置1
A=a|0xff00——a的高字节全置1
^按位异或运算符
对应位相同为0,不同为1
作用
1,是特定位翻转
0110 1010,低四位翻转
0000 1111 低4位为1
2,一个数与0异或,保留原值
0111 1010
^0000 0000
0111 1010
3,交换2个值,不用中间量
a =a^b;
b =b^a;
a =a^b;
b =a^b^b 任意一个数与任意给定的值连续异或2次,值不变
~按位取反运算符
某位置0
a =a&~1,对最低位置0