添加8位有符号幅度的二进制数-二进制算术

时间:2019-09-27 21:46:19

标签: math binary cpu-architecture data-representation

我正在尝试添加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)作为二进制答案,而且似乎也没有溢出。我不确定我是否做对了。请帮忙。

1 个答案:

答案 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