运算符 >>
>>1 这个就是 除以2
比如 10>>1 是 5
15>>1 是7
>> 这个就是右移
<< 这个是左移
>>>无符号左移
没有<<<这个东西
& 换成二进制后,2个都是1的时候才是1,否则是0 比如 12|5 =>4 1100&0101 ---》0100 ===>4
| 换成二进制后,只要是1个是1,就是1,如果2个都是0的话,那就是0 比如 12|5 =>13 1100| 0101 --> 1101 这个换成10进制是13
^ 换成二进制后 2个不同才是1,相同是0 比如 12|5 =>4 1100^0101 ---》1001 ==>9
~ 换成二进制后 取反 ,然后在进行取补码,取补码怎么取呢? 、
比如 ~12 : 1100 比如我是32位系统
00000000 0000000 00000000 00001100
取反11111111 1111111 11111111 11110011
补码10000000 00000000 00000000 00001100
+1 10000000 00000000 00000000 00011101 这个就是最后得到的值 -13 ,所以~12 就是-13
对于原码。就是当前数字的二进制表现形式,如-1的原码是1000 0001。
对于反码,正数的反码就是本身。负数的反码是二进制保留符号位。剩余位取反,比如-1的反码是1111 1110;
对于补码,正数的反码、补码、原码都是一样的,负数的补码是在其反码的基础上+1,比如-1的补码是1111 1111。