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
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值