0

我想知道是否有人可以向我解释当我们添加二进制数时会发生什么。

假设我们有 4 位,0b1111,我们将 1 加到 0b1111。我认为二进制编码应该是0b10000;但是,由于只有 4 位,因此这些位将变为 0b0000。

我想知道为什么会发生这种情况,是因为没有足够的空间吗?如果 0b1111 是有符号整数,我们如何将 1 加到它上面?

4

1 回答 1

1

if0b1111是一个无符号的 4 位值,使用 4 位存储,它的值为 15。向它添加 1 将得到 16,不能以 4 位存储。位翻转并0b0000存储,结果为 0。

现在,if0b1111是一个有符号的 4 位值,具有 4 位存储。它通常以二进制补码表示形式存储。它的范围是 -8 到 +7。0b1111会给你-1。(有关如何转换,请参见此处。)向其中添加 1 会得到 0。

于 2016-05-27T06:04:12.837 回答