机器数的机器数的原码、反码和补码三种形式

 我来答
苄9硆偮5汯
推荐于2017-11-25 · 超过53用户采纳过TA的回答
知道答主
回答量:184
采纳率:0%
帮助的人:103万
展开全部

4.1 原码
将数的真值形式中“+”号用“0”表示,“-”号用“1”表示时,叫做数的原码形式,简称原码。若字长为n位,原码一般可表示为:
(1)当X为正数时[X]原和X一样,即[X]原 = X。当X为负数时 。由于X本身为负数,所以,实际上是将∣X∣数值部分绝对值前面的符号位上写成“1”即可。
原码表示法比较直观,它的数值部分就是该数的绝对值,而且与真值、十进制数的转换十分方便。但是它的加减法运算较复杂。当两数相加时,机器要首先判断两数的符号是否相同,如果相同则两数相加,若符号不同,则两数相减。在做减法前,还要判断两数绝对值的大小,然后用大数减去小数,最后再确定差的符号,换言之,用这样一种直接的形式进行加运算时,负数的符号位不能与其数值部分一道参加运算,而必须利用单独的线路确定和的符号位。要实现这些操作,电路就很复杂,这显然是不经济实用的。为了减少设备,解决机器内负数的符号位参加运算的问题,总是将减法运算变成加法运算,也就引进了反码和补码这两种机器数。
4.2 反码
如前所述,为了克服原码运算的缺点,采用机器数的反码和补码表示法。若字长为n位,反码可表示为:
(2)即对正数来说,其反码和原码的形式相同;对负数来说,反码为其原码的数值部分各位变反。
4.3 补码
补码是根据同余的概念引入的,我们来看一个减法通过加法来实现的例子。假定当前时间为北京时间6点整,有一只手表却是8点整,比北京时间快了2小时,校准的方法有两种,一种是倒拨2小时,一种是正拨10小时。若规定倒拨是做减法,正拨是做加法,那么对手表来讲减2与加10是等价的,也就是说减2可以用加10来实现。这是因为8加10等于18,然而手表最大只能指示12,当大于12时12自然丢失,18减去12就只剩6了。这说明减法在一定条件下,是可以用加法来代替的。这里“12”称为“模”,10称为“-2”对模12的补数。推广到一般则有:
A – B = A + ( – B + M ) = A + ( – B )补
(3)可见,在模为M的条件下,A减去B,可以用A加上-B的补数来实现。这里模(module)可视为计数器的容量,对上述手表的例子,模为12。在计算机中其部件都有固定的位数,若位数为n,则计数值为 ,亦即计数器容量为 ,因此计算机中的补码是以“ ”为模,其定义如下:
(4)简言之,对正数来说,其补码和原码的形式相同;而从(3)式和(4)式可以看出,对于负数,补码为其反码的末位加1。
总之,正数的原码、反码和补码是完全相同的;负数的原码、反码和补码其形式各不相同。另外,特别要注意的是,对于负数的反码和补码(即符号位为1的数),其符号位后边的几位数表示的并不是此数的数值。如果要想知道此数的大小,一定要求其反码或补码才行。

富港检测技术(东莞)有限公司_
2024-04-02 广告
楼主,概念,有点混淆。 机器码,原码、反码、补码,都是等价的,都是码。 它们,是用来表示某个数的,即真值。 数,只有:正、负数、零。 并没有负零 看楼主的问题,有一个《十进制数值:-0》。 数,怎么会有负零呢? 这就无法理解了。 《那它的补... 点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
沙里波特
2022-01-26 · TA获得超过5248个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:632万
展开全部

【【机器数】的机器数】的原码、反码和补码三种形式

哪有什么:【机器数】的机器数】!

【【机器数】的机器数】的原码!

你还想要无限继续写下去吗!

事实上,你只能求【真值】的原码、反码和补码。

===================

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

在计算机中,只使用补码,代表【正负数】进行运算。

数字 0,在八位机中,其补码就是:0000 0000。

+1,就加上一,即:0000 0001。

其他正数,你就慢慢加吧。。。

对于负数,你就逐次递减:

-1,就是 0000 0000-1,取八位的结果,那么,

-1,就是 1111 1111=255(十进制),这就是补码!

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

-3 的补码就是:1111 1101=253。

。。。

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

求负数补码的公式:-X 的补码=256-X。

如果需要二进制,你自己再进行换算。

========

借助于补码,可以用加法,代替减法运算。

这就能够简化计算机的硬件。

原码和反码,都没有这种功能。

它们是多少,无需关心。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

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

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

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

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

采用了补码,计算机中,就没有负数了。所有的减法运算,也都用加法代替了。

因此,计算机的硬件,就可以简化,只用一个加法器,就能打遍天下。

原码和反码,都没有这种功能,所以,原码和反码,都是不能用的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式