一、按位与(&)
1、将某一位置0,其他位不变
e.g.将char类型变量a的最低位置0:a=a&0xfe;//0xfe= 1111 1110
ps:char类型为一个字节,对应8个位
2、取指定位
e.g.有char c;int a;取出a的低字节置于c中:c=a&0xff;
0xff=1111 1111,a高于8位的值都变为0,而低八位的值仍为原值。这样就取出了a的最低8位赋到c中。
二、按位或(|)
1、将某些位置1,其他位不变
e.g.将int型变量a的低字节置1:a=a|0xff;
三、按位异或(^)
对应位不同结果为1,相同为0
1、使指定位翻转
与0异或仍为原值,与1异或便取反
四、按位取反(~)
五、移位(<<、>>)
1、左移运算(<<)
左移后,低位补0,高位舍弃
2、右移运算(>>)
右移后,低位舍弃,高位无符号数补0,有符号数补符号位