作业帮 > 数学 > 作业

二进制补码运算判断是否溢出的标准是什么?用1101+01010101作为例子

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/11/08 03:50:51
二进制补码运算判断是否溢出的标准是什么?用1101+01010101作为例子
要限定数字的位数,运算结果超出了范围,就溢出了.
楼主给出的两个数,没有明确的位数,这就永远不会溢出.
再问: 书上说要补成一样长的再算,在1101前面加4个1这样再算 然后第一位就会进位了...
再答: 随意说一个位数不清的数,计算、判断,就不规范。
计算机一般是8位,或16位的。

一个8位补码,所能表示的数字范围是:-128~+127。

计算十进制的加法:100 + 100 = 200

用8位补码来计算,就是:
0110 0100 + 0110 0100 = 1100 1000。并没有进位。

但是,结果并不是200的补码,而是-56的补码。
因为 200 的补码,需要 9 位二进制数。

这就是溢出了。
再问: 厄 这么说就是只要结果一样就不是溢出吗
再答: 运算结果,超出了指定位数所能表示的范围,就溢出了。

先要明确位数,然后就知道了范围,最后再讨论溢出与否。

不是随便给定两个数字,就能判定溢出不溢出的。
再答: 16 位的补码,可表示:-32768~+32767。

计算十进制的加法:100 + 100 = 200

用 16 位补码来计算,就是:
0000 0000 0110 0100 +
0000 0000 0110 0100 =
0000 0000 1100 1000

结果,正是 200 的补码。
此时,就没有溢出。