2.2.5 按位运算符
十进制数被人们广泛使用,但对于计算机而言,二进制数反而是更重要的,计算机的一切计算都建立在二进制数计算的基础上。按位运算是一种将十进制数转为二进制数再进行运算的过程。Python中的位运算符如表2-5所示。
表2-5 位运算符
Python按位运算的基础使用方法如代码清单2-15所示。
代码清单2-15 按位运算
在按位运算中,取反运算较难理解,因为涉及补码的计算。
十进制数的二进制原码包括符号位和二进制值。以“60”为例,其二进制原码为“00111100”,第1位为符号位,0代表正数,1则代表负数。正数的补码与二进制原码相同,负数的补码则为二进制原码符号位保持不变,其余各位取反后再在最后一位上加1。
取反操作可以总结为以下5个步骤。
1)取十进制数的二进制原码。
2)对原码取补码。
3)补码取反(得到最终结果的补码)。
4)取反结果再取补码(得到最终结果的原码)。
5)二进制原码转十进制数。