ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关于有符号整数的一些思考

2021-10-17 23:03:48  阅读:161  来源: 互联网

标签:真值 符号 补码 整数 80000000 思考 FFFFFFFF 减法 FFFFFFFB


1.补码是什么?

​ 计算机存储时,以补码表示负数,例如-1的补码是FFFFFFFF

2.补码如何计算?

​ 因为补码的定义是零减去这个数的绝对值

​ 例如如-2 == 0-2 == 00000000 - 00000002,零向高位借一位 = FFFFFFFF+1 -00000002 =FFFFFFFE

设x为真值的绝对值

由于x+x反 + 1 = 0,<==> 0-x = x反 +1 ,所以x反+1 =x补

得 x = 0 - x补 由上可知 x = (x反+1)反 +1 = x-1+1 = x

所以 x = x补反+1

所以无论是由真值转补码,还是补码转真值都是取反加一

例如: -5 的补码是 FFFFFFFB

​ 而 80000002的真值是7FFFFFFE = 2,147,483,646‬(10)

​ 80000000的真值是80000000 = 2,147,483,648(10)

3.为什么要使用补码?

因为计算机只会加不会减法,而减法的本质是相互抵消,x - y = x + (0 - y) = x + x补

例如:6-5 = 00000006 + FFFFFFFB , FFFFFFFB差5个数就溢出变成零,所以当 相加时 6里面的5就因为补上了 FFFFFFFB所缺少的5而消失了,从而实现了减法,变成了6-5 = 1

附加:这很像阴阳之道,正数为有,负数为缺,正负相合,始得证果。

image

一半以下的看作有,即为整数,取值范围为00000000~7FFFFFFF

image

一半及一半以上的,看作缺,即为负数,取值范围80000000~FFFFFFFF

image

相加后,将已经圆满的去掉,剩下的就是答案了

标签:真值,符号,补码,整数,80000000,思考,FFFFFFFF,减法,FFFFFFFB
来源: https://www.cnblogs.com/czlnb/p/15418632.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有