更新时间: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鸿蒙原生智能正式版课程,培养全端跨平台鸿蒙工程师
2026-03-10AI鸿蒙原生智能正式版课程,培养全端跨平台鸿蒙工程师
2026-03-10毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03