补码:加法溢出?
Two's Complement: Addition Overflow?
我正在尝试将 24 加到 10 的 2 的补码中。我发现 24 的 2 的补码是:011000 和 10 的 2 的补码是 001010。当我将两者相加时,我得到:100010。结果是一个负数。这是溢出的例子吗? 10的2的补码不能加24吗?
如果你只有6位,那么是的,它是一个溢出。原因是 6 位 2 的补码只能存储数字 -32..31
而您想要的结果 34
超出了该范围。
如果你有,比如说,8 位,你的结果将是 00100010
,这不会是负数,也不会溢出。
两个正数相加得到负数,或者两个负数相加得到non-negative结果,是有符号 2 的补码溢出的明确指标。
我正在尝试将 24 加到 10 的 2 的补码中。我发现 24 的 2 的补码是:011000 和 10 的 2 的补码是 001010。当我将两者相加时,我得到:100010。结果是一个负数。这是溢出的例子吗? 10的2的补码不能加24吗?
如果你只有6位,那么是的,它是一个溢出。原因是 6 位 2 的补码只能存储数字 -32..31
而您想要的结果 34
超出了该范围。
如果你有,比如说,8 位,你的结果将是 00100010
,这不会是负数,也不会溢出。
两个正数相加得到负数,或者两个负数相加得到non-negative结果,是有符号 2 的补码溢出的明确指标。