与(&)、或(|)、异或(^)、非(~)、按位右移运算>>、按位左移运算<<是把数转换成二进制再进行操作
十进制数 | 二进制数 |
---|---|
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
按位与运算:遇0则0,全1则1
例如:6&2,则0110&0010 = 0010按位或运算:遇1则1,全0则0
例如:6|2,则0110|0010 = 0110按位异或运算:值不同则为1,值相同则为0
例如:6^2,则0110^0010 = 0100
另如果a^b==c,则有a^c==b和c^b==a按位非运算:取反
例如:~6,则~0110=1001按位右移运算>>:把二进制数向右移动n位,移除去的不管
例如:6>>2,0110>>2=0001即1按位左移运算<<:把二进制数向左移动n位
例如:6<<2,0110<<2=00011000即 24+23=24 2 4 + 2 3 = 24反码:第一个二进制数是符号位,0表示正数,1表示负数。正数的反码是其本身,负数的反码是每个二进制位取反
例如:6=> 00110 的反码是本身6
-6=>10110 的反码是11001,即-9补码:正数的补码是其本身,负数的补码是在反码的基础上加1
例如:6=>00110的补码是6
-6=>10110的反码是11001,补码是11010,即-10