【发布时间】:2016-01-26 16:16:26
【问题描述】:
我试图在 2 的补码中将 24 添加到 10。我发现 2 的补码中的 24 是:011000 和 2 的补码中的 10 是 001010。当我将两者相加时,我得到:100010。结果是一个负数。这是溢出的例子吗? 2的补码不能把24加到10吗?
【问题讨论】:
我试图在 2 的补码中将 24 添加到 10。我发现 2 的补码中的 24 是:011000 和 2 的补码中的 10 是 001010。当我将两者相加时,我得到:100010。结果是一个负数。这是溢出的例子吗? 2的补码不能把24加到10吗?
【问题讨论】:
如果你只有 6 位,那么是的,这是溢出。原因是 6 位 2 的补码只能存储数字 -32..31,而您想要的结果 34 超出了该范围。
如果你有,比如说,8 位,你的结果将是 00100010,它不会是负数,也不是溢出。
将两个正数相加得到一个负数结果,或将两个负数相加得到一个非负数结果,是有符号 2 的补码溢出的明确指标。
【讨论】: