我正在练习我的二进制加法并溢出我猜,我需要答案是 5 位来添加 01010 和 11011,以节省十进制 10 和 27 的时间
添加后,我得到 100101,这是 37 的预期答案。
但是,由于答案必须是 5 位,这是否意味着我将位放在左侧,即 1?我对此感到困惑,因为这不是答案 5 吗?而不是37?因为它将是 00101,或者这只是计算机的操作方式?
也有人可以阐明以下两个问题的含义吗?
进位到最高有效位的值是多少?
最高有效位的进位值是多少?
任何帮助和澄清将不胜感激。
辛
如果你只有 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。这可以被计算机使用,即检测这样的溢出。
如果您需要更多详细信息,请告诉我。