什么是原码、反码、补码?

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

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

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

计算机中,并没有原码和反码

为什么用补码?

就是为了:简化硬件,节约成本。

因为,负数,是可以用一个正数(补码)代替的。

如: 24 - 1 = 23

   24 + 99 = (一百) 23

忽略进位,用 +99 就可以代替-1。

+99,就是-1 的补数。 计算机用二进制,就称为:补码。

用补码(正数)代替了负数,那么,计算机中,就没有负数了。

那么,在计算机中,就只有加法运算了。

所以,在计算机中,只需设置一个加法器,便可加减通吃了。

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


定点整数的补码(mod=2^n)定义式如下:

  [X]补 = X      ( 0 ≤ X < 2^(n-1) )

  [X]补 = 2^n - | X |  (-2^(n-1) ≤ X < 0 )

当 n = 8 时,[-128]补 = 256-128 = 1000 0000B。

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

定点小数的补码(mod=2)定义式如下:

  [X]补 = X     ( 0 ≤ X < 1 )

  [X]补 = 2 + X   (-1 ≤ X < 0 )

因此,-1.0 的补码为 2 +(-1) = 1.0000。

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





舒仕福
2023-07-11 广告
eor有以下两种含义:1. eor是计算机术语,表示二进制异或运算。在计算机逻辑运算中,算术逻辑执行二进制按位异或运算,两数执行异或后相同位结果为0,不同位结果为1。2. eor也表示在任何时期,向地层中注入流体、能量,以提高产量或采收率的... 点击进入详情页
本回答由舒仕福提供
京安娴邸畅
2019-11-27 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:647万
展开全部
1):补码加法公式
   [X+Y]补

[X]补
+
[Y]补
2):补码减法公式
[X-Y]补
=
[X]补-[Y]补
=
[X]补
+
[-Y]补
其中:[-Y]补称为负补,求负补的办法是:对补码的每一位(包括符合位)求反,且未位加1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2021-03-18 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:639万
展开全部
计算机中,只有补码,没有原码反码。
只要掌握了补码,即可。
小数补码的定义式:
  [X]补 = X    ; 0 ≤ X < 1
  [X]补 = 2+X  ; -1 ≤ X < 0
 
例如:
  X = + 0.010 1000, 则 [X]补 = 0010 1000。
  X = -0.011 1000, 则 [X]补 = 1100 1000。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2020-01-09 · TA获得超过2.4万个赞
知道答主
回答量:9.4万
采纳率:12%
帮助的人:4604万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卓蕾逄苍
2020-03-10 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:695万
展开全部
1、原码的定义
原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。
①小数原码的定义
[X]原
=
X
0≤X
<1
1-
X
-1

X

0
例如:
X=+0.1011
,
[X]原=
01011
X=-0.1011
[X]原=
11011
②整数原码的定义
[X]原
=
X
0≤X
<2n
2n-X

2n

X

0
原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,其表示范围:
最大值为0.1111111,其真值约为(0.99)10
最小值为1.1111111,其真值约为(一0.99)10
当用8位二进制来表示整数原码时,其表示范围:
最大值为01111111,其真值为(127)10
最小值为11111111,其真值为(-127)10
在原码表示法中,对0有两种表示形式:
[+0]原=00000000
[-0]
原=10000000
2、补码的定义
机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X]补。
①小数补码的定义
[X]补
=
X
0≤X
<1
2+
X
-1

X

0
例如:
X=+0.1011,
[X]补=
01011
X=-0.1011,
[X]补=
10101
②整数补码的定义
[X]补
=
X
0≤X
<2n
2n+1+X

2n

X

0
补码表示数的范围与二进制位数有关。当采用8位二进制表示时,小数补码的表示范围:
最大为0.1111111,其真值为(0.99)10
最小为1.0000000,其真值为(一1)10
采用8位二进制表示时,整数补码的表示范围:
最大为01111111,其真值为(127)10
最小为10000000,其真值为(一128)10
在补码表示法中,0只有一种表示形式:
[+0]补=00000000
[+0]补=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)
所以有[+0]补=[+0]补=00000000
3、反码的定义
机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作[X]反。
反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。
①小数反码的定义
[X]反
=
X
0≤X
<1
2-2n-1-X
-1

X

0
例如:
X=+0.1011
[X]反=
01011
X=-0.1011
[X]反=
10100
②整数反码的定义
[X]反
=
X
0≤X
<2n
2n+1-1-X

2n

X

0
例1.
已知[X]原=10011010,求[X]补。
分析如下:
由[X]原求[X]补的原则是:若机器数为正数,则[X]原=[X]补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]补=[X]原十1,即
[X]原=10011010
[X]反=11100101
十)
    
1
[X]补=11100110
例2.
已知[X]补=11100110,求[X]原。
分析如下:
对于机器数为正数,则[X]原=[X]补
对于机器数为负数,则有[X]原=[[X]补]补
现给定的为负数,故有:
[X]补=11100110
[[X]补]反=10011001
十)
1
[[X]补]补=10011010=[X]原
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式