位运算符
原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。
1 | [+1]原 = 0000 0001 |
反码
正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
1 | [+1] = [00000001]原 = [00000001]反 |
补码
正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1。(即在反码的基础上+1)
1 | [+1] = [00000001]原 = [00000001]反 = [00000001]补 |
&与运算
3 & 5 = 1
1 | 3 00000011 |
|或运算
3 | 5 = 7
1 | 3 00000011 |
~非运算
~ 3 = -4
1 | 3 00000011 |
~ -4 = 3
1 | -4 10000100 原 |
^异或运算
3 ^ 5 = 6
1 | 3 00000011 |
<<左移
不分正负数,低位补0。
>>右移
如果该数为正,则高位补0,若为负数,则高位补1。
参考