python 取反操作符(~)

前言
在菜鸟教程中学习python3的位运算符时,对取反操作有疑惑,查多番资料后方有收获,故总结,若有不对之处,欢迎指出。
在这里插入图片描述

总结

  1. 整数在内存中以补码的形式存储;
  2. 正数的原码、反码、补码都是一样的;
  3. 负数:
    • 原码变补码,符号位不变,其余位按位取反后加1;
    • 补码变原码,符号位不变,其余位按位取反后加1;
  4. python中的取反操作是在补码的基础上单纯的按位取反,符号位也包括在内按位取反;
  5. 取反操作是在内存中完成的,既:补码1→按位取反→补码2;
  6. print的结果是十进制数,所以得将补码2转成原码再转十进制数;

求~60:
1. 60的原、反、补码:00111100
2. 补码按位取反:11000011  #是个负数,先转原码再转十进制
3. 补码转成原码:11000011→(取反)→10111100→(+1)→10111101
4. 原码转十进制:10111101→-61


求~(-61):
1. -61的原码:10111101
2. -61的补码:11000011
3. 补码按位取反:00111100  #是正数,原补一致,直接转十进制
4. 原码转十进制:00111100→60

在这里插入图片描述

参考:https://blog.csdn.net/weixin_43915860/article/details/107656101

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python中的重载操作符指的是通过定义类的特殊方法,使得该类的对象可以支持相应的操作符。以下是一些常用的重载操作符及其对应的特殊方法: - 加法操作符: `+`,特殊方法名为 `__add__(self, other)`。 - 减法操作符: `-`,特殊方法名为 `__sub__(self, other)`。 - 乘法操作符: `*`,特殊方法名为 `__mul__(self, other)`。 - 除法操作符: `/`,特殊方法名为 `__truediv__(self, other)`。 - 取模操作符: `%`,特殊方法名为 `__mod__(self, other)`。 - 按位与操作符: `&`,特殊方法名为 `__and__(self, other)`。 - 按位或操作符: `|`,特殊方法名为 `__or__(self, other)`。 - 按位异或操作符: `^`,特殊方法名为 `__xor__(self, other)`。 - 左移操作符: `<<`,特殊方法名为 `__lshift__(self, other)`。 - 右移操作符: `>>`,特殊方法名为 `__rshift__(self, other)`。 - 一元加操作符: `+`,特殊方法名为 `__pos__(self)`。 - 一元减操作符: `-`,特殊方法名为 `__neg__(self)`。 - 一元取反操作符: `~`,特殊方法名为 `__invert__(self)`。 - 小于操作符: `<`,特殊方法名为 `__lt__(self, other)`。 - 小于等于操作符: `<=`,特殊方法名为 `__le__(self, other)`。 - 等于操作符: `==`,特殊方法名为 `__eq__(self, other)`。 - 大于等于操作符: `>=`,特殊方法名为 `__ge__(self, other)`。 - 大于操作符: `>`,特殊方法名为 `__gt__(self, other)`。 通过定义这些特殊方法,我们可以自定义类的行为,使其支持与内置类型相同的操作符

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值