【发布时间】:2021-10-27 19:12:28
【问题描述】:
我有一个我无法理解的概念性(ish)问题。我有一个作业,它告诉我选择以下 4 位二进制(2 的补码)加法中的哪一个会导致溢出。以下是:
- A. 1011+1001
- 乙。 1100+1101
- C. 0111+1000
- D. 1010+0110
对于 A,我得到 10100,对于 B,我得到 11001,对于 C,我得到 1111,对于 D,我得到 10000。
显然只有一个答案,但 A、B 和 D 都会产生溢出。它们最终以 5 位而不是 4 位结束。当我问教练他是否想说其中哪一个不会产生溢出时,但他说问题是正确的。他给了我这个提示:
对于 4 位无符号数,溢出意味着 2 个数的和不能用无符号位表示。对于 4 位 2 的补码,溢出是指两个数字的和不能用 4 位 2 的补码表示。
但这对我没有帮助,因为这已经是我的理解了 - 对于 A、B、D,总和无法用 4 位 2 的补码表示。我做错了什么?
【问题讨论】: