补码、反码、原码与python运算符~

**

在python中,~1=-2, ~60 = -61,这是为什么呢?

**
首先,~运算符在python中是按位取反的运算,1的二进制是 0000 0001,按位取反变为 1111 1110,二进制位中的最高位是符号位,1取反之后变成了负数,好,接下来介绍下补码、反码、原码,
计算机中正整数数原码、反码、补码都是一样的,而负整数就有区别了,反码是原码除最高位外其余所有位的逐位求反, 将反码加上1就得到补码。计算机中整数都是以补码形式储存的,所以上面的1111 1110是补码形式,为了直观表示1取反之后到底是多少,我们就把这个补码转换为原码就一清二楚了,首先将1111 1110 减1变回反码 1111 1101 ,然后除去最高位取反 变为原码 1000 0010,也就是-2,所以原因是这个。
学习,痛苦一小时,快乐一整天

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值