<<   左移,每移动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