2014-03-29 107 views

回答

4

我假设a是一个有符号整数并初始化为2.我也假设这是二进制补码。 (我也省略了第一个字节之上的字节,因为它们对这个答案的结果没有意义)。

〜(代字号)是按位不是运算符。也就是说,它会使任何1变为0,任何0变为1. < <有点向左移动。

所以在开始时我们得到00000010作为a中的位。当我们做非运算符时,我们得到11111101,这将给我们-3。

然后我们再加2,所以我们得到11111111或-1。然后,我们将这一个转移到左边,我们有11111110等于-2。

+3

...并且您还假设有符号整数存储为二进制补码。 :)这对任何今天的平台来说都是事实。 –

+0

@DanielKamilKozar是的,我并不觉得复杂的答案,因为我觉得这不可能是两个补充。我已经将它添加到标题了。 – Asthor

相关问题