首页常见问题正文

Python培训:按位取反怎么算

更新时间:2022-10-26 来源:黑马程序员 浏览量:

IT培训班

  在Python中,按位取反就是将二进制位的每一位进行取反,0取反为1,1取反为0。例如,将9按位取反后的结果为-10,接下来,带大家一起分析一下9按位取反后为什么结果为-10,具体如下:

  (1)将9转换为二进制变成00001001。因为正数的原码=反码=补码,真正存储的时候,存储的就是00001001;

  (2)对9的补码00001001进行取反操作,取反后结果为11110110,这是补码;

  (3)将补码转为原码。转换的时候,符号位不变,其他位取反,然后+1得到原码,结果为10001010,即-10。

  具体过程如图2-16所示。

1666755932218_按位取反操作.jpg

  图2-16 按位取反操作

  从图2-16中可以看出,当将00001001按位取反后,结果为10001010。为了验证结果是否正确,接下来,在代码中进行测试,具体如下:

>>> a = 9
>>> ~a
-10
>>> bin(~a)
'-0b1010'

  从上述代码可以看出,9按位取反后,结果为-10,而-10转换为二进制数就是10001010。

分享到:
在线咨询 我要报名
和我们在线交谈!