我正在尝试添加8位带符号的幅度编号:10111000 + 00010111
0 1 1 0 0 0 0 0 carry
1 0 1 1 1 0 0 0 (-56)
+ 0 0 0 1 0 1 1 1 + (+23)
____________________ ________
1 0 0 1 1 1 1 != (-33)
我知道最高有效位(MSB)是符号位,不应添加。但是,我没有得到(-33)作为二进制答案,而且似乎也没有溢出。我不确定我是否做对了。请帮忙。
答案 0 :(得分:2)
不幸的是,符号幅度表示法中的加法不像普通补码表示法那样简单。对于符号幅度,您需要根据符号组合选择正确的操作。如果符号相等,则只需将幅度相加即可。如果符号不相等,则从较大的符号中减去较小的符号,并保留较大幅度的符号。因此,就您而言:
0 0 0 1 1 1 0 borrow
0 1 1 1 0 0 0 (56)
- 0 0 1 0 1 1 1 - (23)
____________________ ________
0 1 0 0 0 0 1 == (33)
采用较大幅度(56
)的符号会给您最终数字1 0 1 0 0 0 0 1
。