计算机原码反码补码怎样计算?

 我来答
做而论道
高能答主

2022-09-18 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部

计算机系统中,数值,一律用补码来表示和存储。


补码,其实,就是一个“代替负数进行运算”的【正数】。


使用了补码(正数)之后,在计算机中,就没有负数了。


随之而来的就是:减法运算,也都不存在了。


所以,借助于补码,计算机只需要配置一个加法器,就能走遍天下。


使用补码的目的,也就是:简化计算机的硬件。


而原码、反码,都没有这种功能,所以,计算机中,根本就不用它们。


原码和反码,只能在纸上写一写而已。

在计算机中,原码和反码,都是不存在的。

它们之间你怎么写,都没有关系,反正,都没有任何用处!

---------------------

补码(就是【正数】),怎么就能代替负数呢?


你看时针:倒拨 3 小时,可以用正拨 9 小时代替吧?


你看三角函数:-π/2、+3π/2,两者的函数值也是相同的吧?


10 进制数,如果限定只用 2 位 ,那么就会有:


   25 - 1 = 24


   25 + 99 = (一百) 24


如果忽略进位一百(10^2),+99 就可以代替-1。


上面所说的这些正数,就是“负数的补数”。


求补数的公式是: 补数(即正数)= 负数 + 周期。


正数,必须直接就参加运算,不可再做任何变换。


就是说:正数,本身就已经是正数了,它并不存在什么补数。


---------------------


计算机用二进制,补数,那就称为“补码”了。


8 位 2 进制的周期,是:2^8 = 256。


8 位 2 进制,总共可以组成 256 个代码。


用其中的一半(即 128 个)代表负数,就是:-1 ~ -128。


那么:


-1 的补码,就是:-1 + 256 = 255 = 1111 1111(二进制)。


-2 的补码是:-2 + 256 = 254 = 1111 1110。


。。。


-128 的补码,就是:128 = 1000 0000。

---------------------


至此,你就可以推出“补码的定义式”:


 当 X >= 0,  [ X ]补 =  X;     零和正数不用变换。


 当 X < 0,  [ X ]补 =  X + 2^n。 n 是补码的位数。


这是通用的公式。


在严谨一点的书上,都有这种公式,你去翻翻书吧。


---------------------


按照公式求补码,是极为简便的,而且还能理解补码的意义。


而且,反过来求(由补码求数值),也是很方便的。


实际上,你只要会“补码与数值”的互换,就够用了。


那么,没有必要学“原码反码取反加一符号位不变”了。


况且,原码和反码比补码,还少了一个数,取反加一,也无法使用。


当然,那些数学不好的老师,也只能使用这些“隔路”的花样。


---------------------


算式 5 - 7 =-2,计算机用八位补码计算如下:


    5 = 0000 0101


 [-7]补码 = 1111 1001


--相加-----------


  得: (1) 1111 1110 = [-2]补码


舍弃了进位,结果,就是正确的。


---------------------

富港检测技术(东莞)有限公司_
2024-06-06 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者... 点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式