补码的原理

本文探讨了补码在计算机中的作用,强调其在二进制运算中的便利性,指出补码可以直接相加而不会出错。补码的概念通过与直角坐标中补角的类比进行解释,说明了正负数在二进制中的表示方式。对于8位二进制,无符号数范围是0~255,有符号数则是-128~127。补码与原码之间的转换关系以及如何通过按位取反加1得到补码也进行了阐述。文章还提及,当年在CSDN上关于补码的详细解释并不多见,但现在已经成为常见知识。
摘要由CSDN通过智能技术生成

多年前我写的一篇文章说补码的原理的,神奇的消失了。不知道到底是写在哪里去了。如同我日渐衰退的大脑和记忆一样。
人的消亡,不只是肉体慢慢衰退,精神和意识也同样。可悲。
写那篇文章的时候,CSDN上还没有确切讲清楚补码原理的。
不过如今大把都是。就不再重复了。
就提几个关键吧。
1 计算机用补码方便二进制计算。因为补码可以直接相加而结果不会出错。源码和反码则不能直接相加。
2 补码之所以叫补码,和直角中30度的补角是60度一样,1和255是对256是互补的。255的原码就是-1的补码。同样,1和127对128是互补的,如果忽略符号位,-1的补码就是127的原码。
3 对于8位无符号二进制来说,范围是0~255,而对于有符号数来讲,范围是-128~127。前面的0~127二者是一致的 但从128开始,用无符号数的128标识有符号数的-128直到,129表示-127……以此例推,直到用255表示-1。就是说,用无符号数的后半段来表示有符号数的负数。在补码中,数字大小的增减和绝对值大小增减方向一致,所以可以直接相加。
4 根据2和3的原理,有如下公式,
-45的补码=256-45=211的原码
如果忽略符号位
-45的补码=128-45=83的原码
5 那为什么一个数按位取反之后+1就是补码了呢?也就是反码+1就是补码了呢?看公式:
因为256或者128都是这样的一种数,最高位是1,剩下的全是0,这种数减去比它小的数就是按位取反+1。
比如256-45=255+1-45=255-45+1
255是全是1的数,减去任何比它小的数,都是按位取反。最后再+1就是补码了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值