举一个计算机补码计算的例子,以及怎么计算

 我来答
changyiduU4Q
高粉答主

2019-10-05 · 关注我不会让你失望
知道答主
回答量:264
采纳率:100%
帮助的人:8.5万
展开全部

运用:在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理。

计算

1、正数

正整数的补码是其二进制表示,与原码相同。

例如:+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)

2、负数

求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。

同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。

例如:求-5的补码。-5对应正数5(00000101)→所有位取反(11111010)→加1(11111011)。所以-5的补码是11111011。

3、0的补码

[+0]补=[+0]反=[+0]原=00000000

[ -0]补=11111111+1=00000000

扩展资料

补码乘法

补码的乘法不具备【X*Y】补=【X】补×【Y】补的性质。但是【X*Y】补==【X】补×Y,所得结果再取补码,如x=101,y=011,[x*y]补=-[(-101)*011]=-[011*011]=-01001=10111。

其中,若【Y】补=y31y30……y0,则 Y=-y31*2^31+y30*2^30+……+y0*2^0

原码

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

参考资料来源:百度百科-补码

参考资料来源:百度百科-原码

沙里波特
2022-01-23 · TA获得超过5248个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:633万
展开全部

正数,不需变换,直接就可以计算。

   也有人说:本身就是补码。(强词夺理啊!)

负数,用它的正数,减一取反,即可得到补码。

如:+9 的二进制是:0000 1001。

下面求-9 补码:

先减一:0000 1001 - 1 = 0000 1000;

再取反:1111 0111。

所以有:-9 补码 = 1111 0111。

简不简单? 意不意外?

原码反码符号位,都是毫无用处的,不用关心。

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

计算: 23-9 = 14。

在计算机中,只有加法器,没有减法器。

所以,要使用(八位)补码来计算如下。

   23 的补码=0001 0111

    -9 的补码=1111 0111

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

   得: (1)    0000 1110 = 14 的补码  

借助于补码,就用加法,实现了减法运算。

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

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

一般的计算,是用十进制来进行的。


如果限定了参加计算的“位数”,就会发生不同寻常的事。


比如,限定,使用两位数:00~99。


那么,-1 和 +99,功能就是相同的:


   25 - 1 = 24


   25 + 99 = (一百) 24


在这里,99,就是-1 的补数。


一百,就是 10^2,则称为:计数周期。


计算公式: 补数 99 + |-1 | = 周期。


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


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


八位机,就是用 8 位二进制,来参加计算。


计数范围:0000 0000~1111 1111(十进制 255)。


周期就是:2^8 = 256。


那么:


 -1 的补码,就是 256-1 = 255 = 1111 1111。


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


 。。。


求补码的通用公式,就是:周期 + 负数。


并不需要借助于原码和反码。


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


在计算机中,利用补码,就能:用加法代替减法运算。


因此,就可以简化计算机的硬件。


例如,用补码计算: 3 + (-1) = 2。


    0000  0011  (= 3)


  + 1111 1111  (用 255 当做-1)


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


  (1)  0000 0010  (= 2)


舍弃进位,只取八位,结果就完全正确。


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


补码,就是补码。


补码和原码反码,并没有任何关系。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lushwong
高粉答主

推荐于2017-11-23 · 醉心答题,欢迎关注
知道顶级答主
回答量:3.6万
采纳率:94%
帮助的人:5392万
展开全部
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式