计算机的,反码,原码,补码!求它们的计算方法

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

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

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

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

使用补码代表正负数值,可将负数,转换成正数来计算。

这就可以节省硬件,只用加法器,便可实现加减法运算。

补码,是是什么意思? 这得从【补数】谈起。

计算机所计算的位数,是固定的,如八位机。。。

位数限定之后,其计数范围,就有了周期性。

如两位十进制 0~99,周期就是 100(一百)。

那么,减一,就可以用 +99 代替:

   25 - 1 = 24

   25 + 99 = (一百) 24

舍弃进位,只取两位,这两种算法,功能就是相同的。

这就用正数,代替了负数! 用加法,就实现了减法运算!

99,就是-1 的补数。 计算公式:补数 = 周期 + 负数。

学过三角函数的同学,都知道,函数周期是:2π(360°)。

那么-90°,也可以+270° 来计算。 这也是同样的道理。

一个负角度,怎么计算出“等效的正角度”,大家都会。

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

计算机用二进制,补数,就改称为:补码

八位二进制:0000 0000 ~ 1111 1111。

对应十进制:0 ~ 255。

计数周期是:2^8 = 256。

那么,

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

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

。。。

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

用不存在的“原码反码取反加一”来求,也是这个结果。

求负数补码的计算公式,也是: 周期 + 该负数。

正数,也可以使用这个公式。但是,计算后,这个周期的数值,

超出了计数范围,就略去了。 最后,还是这个正数。

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

例如: 7-3 = 4。

补码的计算过程如下:

    7 的补码=0000 0111

    -3的补码=1111 1101

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

   得  (1)   0000 0100 = 4 的补码

舍弃进位,只保留八位作为结果,就求出了 7-3。

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

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

它们不过是,计算机老师捧在手中的饭碗而已。

上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要... 点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
游元旋箕纶
2020-02-24 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:688万
展开全部
换算根据他们各自的定义进行。
所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
原码10010=
反码11101
(10010,1为符号码,故为负)
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
例如:
(1)
原码:在数值前直接加一符号位的表示法。
例如:
符号位
数值位
[+7]原=
0
0000111
B
[-7]原=
1
0000111
B
注意:a.
数0的原码有两种形式:
定点小数表示方法
[+0]原=00000000B
[-0]原=10000000B
b.
8位二进制原码的表示范围:-127~+127
换算:
[+7]反=
0
1111000
B
[-7]反=
1
1111000
B
[+7]补=
0
0000111
B
等于
[+7]原
[-7]补=
1
1111001
B
等于
[-7]反+
1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贝骄毛河
2019-09-28 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:30%
帮助的人:594万
展开全部
引入原码
反码
和补码的目的就是为了解决减法问题,因为计算机cpu的运算器中只有加法器,要把减法转化成加法来计算。
举个例子,a表示十进制数“+16”,b表示十进制数“-19”,把这两个数的原码直接相加,得:
a=+16
(a)原=00010000
b=-19
(b)原=10010011
00010000
+
10010011
————
10100011
其结果符号位为1是负数,其数值位为100011,即等于十进制数“-35”,这显然是错的结果。
再比如,十进制数“+16”与“+19”的原码直接相减,得:
00010000
-
00010011
————
11111101
结果为“-125”,这又是错的。
但是引入补码后,加减法都可以用加法来实现,如“-16+11”的运算:
11110000
+
-16的补码
00001011
11的补码
————
11111011
-5的补码
如果是“-16-11”,那么就转化为加法运算“-16+(-11)”
11110000
+
-16的补码
11110101
-11的补码
————
111100101
-27的补码
在字长为8位的系统中,最高位所产生的进位被自然丢弃,运算结果的机器数为11100101,是-27的补码形式,结果正确。
顺便告诉你一些其它的东西:
1.二进制数中,两数的补码之和等于两数和的补码。
2.补码=反码+1
3.反码=原码除符号位外其它数值取反(即该数的绝对值取反),即“0”变“1”,“1”变“0”。
4.任何正数的原码
反码
补码的形式完全相同(即都是自身,不变)
5.在计算机中,有符号的数都是采用补码来表示的。
6.计算的时候,符号位也参与运算。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式