[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互为补数。
-y = -(-11111) =+11111
约定字长8位,双符号位:
..[x]补 =00011011
[-y]补 =00011111 (+
-----------------------------------
[x-y]补=00111010 双符号位为00,正数,无溢出
结果:x-y = +111010
楼上约定字长8位是错的。为什么要约定8位呢?什么逻辑啊!就是坑人
[x]补 =00.11011
[-y]补 =00.11111 +
-----------------------------------
[x-y]补=01.11010 双符号位为01,正溢出
变形补码、双符号位,在计算机中,都是不存在的。
因为,并没有任何计算机,使用变形补码。
所以,这方面的分析与计算,都是毫无意义的。
分析来,分析去,都不符合实际。
当然,创造出变形补码的专家,不会同意这个说法。