更新时间: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。
全国13城校区全覆盖|黑马程序员AI大模型开发(Python),就近学习、全国就业
2026-04-08黑马程序员AI大模型开发(Python)|大厂共建+实战赋能,学完即具备企业项目能力
2026-04-08黑马程序员AI大模型开发(Python)|5阶段体系化教学,从入门到精通全覆盖
2026-04-08黑马程序员AI大模型开发(Python)|培养企业应用型人才,适配行业核心需求
2026-04-08黑马程序员AI智能应用开发|上市品牌背书,大厂联合研发,打造AI复合型人才
2026-04-08全国13城校区全覆盖|黑马程序员AI智能应用开发,就近学、就近就业
2026-04-08