主要原因:
使用补码,可以将符号位和其它位统一处理。同时,减法也可按加法来处理,减少计算机工作量,提高计算机工作效率。两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。补码:是一种用二进制表示有号数的方法,也是一种将数字的正负号变号的方式,常在计算机科学中使用。补码系统的最大优点是可以在加法或减法处理中,不需因为数字的正负而使用不同的计算方式。只要一种加法电路就可以处理各种有符号数加法,而且减法可以用一个数加上另一个数的补码来表示,因此只要有加法电路及补码电路即可完成各
在计算机系统中,数值,一律用补码来表示和存储。
8 位二进制代码,共有 2^8 = 256 种组合。
如果设计合理,它们就可以代表 256 个数字。
但是,原码和反码,都是有缺陷的,一个 0,都占用了两个码位。
所以,8 位的原码反码,却都只能代表 255 个数字:-127~+127。
(在计算机中,并不使用原码和反码,这个缺点,也是原因之一。)
而补码的设计方案,是完美的,数字与编码,是一一对应的。
所以,8 位的补码,就能代表 256 个正负数字。
其范围就是:-128~-1,0~+127。
故此,在计算机系统中,数值,一律用补码来表示和存储。
原码和反码,在计算机中,都是不存在的。
那么,原码和反码,都在哪儿啊?
天知道!
补码,其实就是一个“代替负数”的正数。
使用了补码之后,在计算机内部,就没有负数了,
从而,也就没有减法运算了。
因此,利用补码,就可以简化计算机的硬件。
而原码和反码,都没有这种功能。
所以,在计算机中,原码反码,都是不存在的。
-----------
补码(一个正数),怎么就能代替负数呢?
你看,2 位 10 进制数的运算:
25 - 1 = 24
25 + 99 = (一百) 24
舍弃进位,只取 2 位数,结果,是不是相同的?
99,就称为-1 的补数。
98,就是-2 的补数。
。。。
补数,是怎么算出来的?
公式,你都可以自己推导:
补数(正数)=负数+周期(10^2)。
正数,本身就是正数了,不需要作任何变换。
所以,正数,并没有补码。
------------
计算机的运算,位数,也是限定的。
8 位机,每次运算,就是 8 位 2 进制。
那么,-1 的补码,就是:
-1 + 2^8 = 255 = 1111 1111 (二进制)。
。。。
如 25 -1 = 24,用补码计算如下:
25 = 0001 1001
[-1]补码 = 1111 1111
--相加---------
得: (1) 0001 1000 = 24
舍弃进位,保留八位的结果,这就是 24。
-------------------------
补码的来源,与原码和反码,毫无关系。
所以,学习原码和反码取反加一符号位不变,都是做无用功。
老外数学不好,才会用使用这些骚操作。
声明: 我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本站部分文字与图片资源来自于网络,转载是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:daokedao3713@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
本站内容仅供参考,不作为诊断及医疗依据,如有医疗需求,请务必前往正规医院就诊
祝由网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。
Copyright © 2022-2023 祝由师网 版权所有
邮箱:daokedao3713@qq.com