作业帮 > 综合 > 作业

计算机 中 二进制 减法 的拓展问题—— 计算机 数学 高手进

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 18:39:36
计算机 中 二进制 减法 的拓展问题—— 计算机 数学 高手进
我作业有一道题:
完成下列二进制数的减法运算:(b) 00001100-11110111
这道题分析说先把减数化成补码的形式,也就是要把11110111化成补码,怎么化啊?它的最高位已经是1了。
如果把一个二进制数例如00001111化成补码,先在最高位取1,成10001111,再把各位取反成11110000,加1得11110001,这就是00001111的补码,但是上面那个题它的第一位已经是1了,怎么化呀??
如果人工计算,应该按照减法进行,即:
0000 1100 - 1111 0111 = 0001 0101。
但是,CPU中,只有加法器,并没有减法器,遇到减法,CPU就要将减数全部的位,都求反加一,再与被减数相加,就是:
0000 1100 + 0000 1001 = 0001 0101。 和人工计算的结果相同。
注意:这里讲的“减数全部的位,都求反加一”,并不是常说的求“补码”,这是在CPU中自动进行的,无论这个数字,原来是不是补码,只要是做“减法”,CPU都要自动转换,包括最高位。
上述说法,可以参考《计算机组成原理》。
一般常说的求“补码”,是针对负数而言,由人工进行的。
规则是:符号位为1,不要变化,仅仅对后面的数值位,由原码求反加一。