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

 我来答
刺任芹O
2022-11-16 · TA获得超过6.2万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:8841万
展开全部

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

计算

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),其余位表示数值的大小。

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

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

做而论道
高能答主

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

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

补码,实际上,是一个“代替负数”的正数。

比如,两位十进制数的计算:

  25 - 1 = 24

  25 + 99 = (进位) 24

只要你忽略进位,仅取两位数,这两种算法,就是等效的。

那么,+99 就能代替-1。同时,加法,也就代替了减法运算。

+99 就称为“-1 的补数”。

补数怎么求? 就是:负数+进位值。

进位值,也就是 2 位 10 进制数的计数周期。

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

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

对于 8 位二进制,其进位值是 2^8 = 256。

那么:

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

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

。。。

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

公式就是:周期 + 负数。

在计算机中,利用补码,可以简化算法。

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

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

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

    0000  0011  (= 3)

  + 1111 1111  (-1 的补码=255)

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

  (1)  0000 0010  (= 2)

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

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

补码,就是补码。

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

取反加一、符号位不变 ... ,这些,并没有任何理论依据。

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式