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

在Python中,按位取反就是将二进制位的每一位进行取反,0取反为1,1取反为0。例如,将9按位取反后的结果为-10,接下来,带大家一起分析一下9按位取反后为什么结果为-10,具体如下:
(1)将9转换为二进制变成00001001。因为正数的原码=反码=补码,真正存储的时候,存储的就是00001001;
(2)对9的补码00001001进行取反操作,取反后结果为11110110,这是补码;
(3)将补码转为原码。转换的时候,符号位不变,其他位取反,然后+1得到原码,结果为10001010,即-10。
具体过程如图2-16所示。

图2-16 按位取反操作
从图2-16中可以看出,当将00001001按位取反后,结果为10001010。为了验证结果是否正确,接下来,在代码中进行测试,具体如下:
>>> a = 9 >>> ~a -10 >>> bin(~a) '-0b1010'
从上述代码可以看出,9按位取反后,结果为-10,而-10转换为二进制数就是10001010。
黑马程序员 AI 运维|大厂师资 + 全程服务,3.5 个月实现零基础高薪就业
2026-04-09黑马程序员 AI 运维|10 大就业方向 + 90%+ 就业率,解锁高薪职业路径
2026-04-09黑马程序员 AI 运维|10 大企业级项目实战,毕业即具备独立运维能力
2026-04-09黑马程序员 AI 运维|10 大技术阶段 + 10 大实战项目,从 Linux 到 AI 大模型运维全掌握
2026-04-09黑马程序员 AI 运维|云原生 + 大模型 + 信创三位一体,培养企业紧缺复合型运维人才
2026-04-09黑马程序员AI测试|上市品牌背书,实战赋能,助力冲击年薪30万+
2026-04-09