<< 左移,每移动1位,相当于乘以2 例如:32<<2 等价于:32*4 ==128
>> 右移,每移动1位,相当于除以2 例如:32>>3 等价于:32/8 == 4
位运算的速率比算数运行速率高
& 位与
| 位或
~ 按位取反
^ 按位异或
*原码,反码,补码,负数表示法
原码:人直观看到的数字
1==>0b1, -1==>-0b1 ,bin(-1) #binary二进制
反码:正数的反码和原码相同;负数的反码符号位(最高位)不变,其余位按位取反
补码:正数的补码和原码相同;负数的反码符号位(最高位)不变,其余位按位取反后+1
计算机中用补码来存数字
补码的补码就是原码
负数表示法:
5-1 ==>5+(-1) ==>
5的原码 (补码) 0b0000 0101
-1的原码 0b1000 0001
-1的补码 0b1111 1111
补码相加 0b 1 0000 0100 #红色的1溢出,丢弃
例:~12
12 ==> 0b0000 1100
~12 ==> 0b1111 0011
0b1000 1101 ==>-13
例:10^9
解:10 0b 0000 1010
9 0b 0000 1001
10^9 0b 0000 0011 3
10^-9
解: 10 0b 0000 1010
-9 0b 1000 1001
10^-9 0b 1000 0011 -3