0

我正在练习我的二进制加法并溢出我猜,我需要答案是 5 位来添加 01010 和 11011,以节省十进制 10 和 27 的时间

添加后,我得到 100101,这是 37 的预期答案。

但是,由于答案必须是 5 位,这是否意味着我将位放在左侧,即 1?我对此感到困惑,因为这不是答案 5 吗?而不是37?因为它将是 00101,或者这只是计算机的操作方式?

也有人可以阐明以下两个问题的含义吗?

进位到最高有效位的值是多少?

最高有效位的进位值是多少?

任何帮助和澄清将不胜感激。

4

1 回答 1

1

如果你只有 5 位,那么是的,二进制 10+27 的答案是 5,因为你可以存储在 5 位中的最大值是 2^5 - 1 = 31d = 11111b。包括 0,您可以在 5 位变量中存储 32 个不同的值。所以你的结果是 37mod32 = 5。

最高有效位是具有最高值的位,在您的情况下是最左边的位。该位如果为 1,则具有十进制值 16。

“进位位”是位于 MSB 旁边的位,不再位于变量本身中。所以说你的五位变量中的“第六位”。它的初始值为 0:

0 01010
0 11011 +
---------
1 00101 =

但是结果值是 1。所以你“执行”了一个 1。这可以被计算机使用,即检测这样的溢出。

如果您需要更多详细信息,请告诉我。

于 2013-03-06T10:16:42.983 回答