添加到无符号和有符号二进制整数

Adding to unsigned and signed binary integers

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

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

我想知道为什么会这样,是不是因为space不够?如果 0b1111 是一个有符号整数,我们如何给它加 1?

如果0b1111是一个无符号的4位值,用4位存储,它的值为15,加1就是16,不能用4位存储。位翻转并存储 0b0000,结果为 0。

现在,如果 0b1111 是一个带符号的 4 位值,具有 4 位存储。它通常以二进制补码表示形式存储。它的范围是 -8 到 +7。 0b1111 会给你-1。 (请参阅 here 了解如何转换。)加一得到 0。