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

时间:2016-05-27 05:35:02

标签: binary unsigned-integer signed-integer

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

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

我想知道为什么会这样,是因为没有足够的空间?如果0b1111是有符号整数,我们如何为它添加1?

1 个答案:

答案 0 :(得分:1)

如果0b1111是无符号4位值,4位存储,则其值为15.将1加1,将得到16,不能以4位存储。位翻转并存储0b0000,结果为0.

现在,如果0b1111是带符号的4位值,则为4位存储。它通常存储在两个补码表示中。它的范围是-8到+7。 0b1111会给你-1。 (有关如何转换的信息,请参阅here。)添加一个可以得到0.