已知x,y,用变形补码计算x-y,同时指出结果是否溢出, x=11011,y=-11111 请教我

2025-03-18 08:22:25
推荐回答(4个)
回答1:

[x]补 =00.11011

[-y]补 =00.11111 +

[x-y]补=01.11010 双符号位为01,正溢出

x=+0.11011,y=-0.11111:

-y=+0.11111

[x]补=00.11100

[-y]补=00.11111

[x-y]补=01.11011,双符号位为01,结果为正数,正溢出(上溢)。

运算结果:x-y=+1.11011

假设

当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12).在12为模的系统里,加10和减2效果是一样的,因此凡是减2运算,都可以用加10来代替。若用一般公式可表示为:a-b=a-b+mod=a+mod-b。对“模”而言,2和10互为补数。

回答2:

-y = -(-11111) =+11111
约定字长8位,双符号位:
..[x]补 =00011011
[-y]补 =00011111 (+
-----------------------------------
[x-y]补=00111010 双符号位为00,正数,无溢出
结果:x-y = +111010

回答3:

楼上约定字长8位是错的。为什么要约定8位呢?什么逻辑啊!就是坑人
[x]补 =00.11011
[-y]补 =00.11111 +
-----------------------------------
[x-y]补=01.11010 双符号位为01,正溢出

回答4:

变形补码、双符号位,在计算机中,都是不存在的。
因为,并没有任何计算机,使用变形补码。
所以,这方面的分析与计算,都是毫无意义的。
分析来,分析去,都不符合实际。
当然,创造出变形补码的专家,不会同意这个说法。