今天,我一直在尝试再次找出按位运算符,但有些事情对我还是有些模糊。一切都是有意义的,直到我开始尝试合并|带〜的运算符,例如:number | ~number。附带说明一下,我已经阅读了有关两者互补的Wikipedia文章,并了解了它的这一方面(我认为)。

------------------------------------------
| 128 | 64 | 32 | 16 |  8 |  4 |  2 |  1 |
------------------------------------------
|   0 |  0 |  0 |  0 |  0 |  1 |  1 |  1 | = 7
------------------------------------------
|   1 |  1 |  1 |  1 |  1 |  0 |  1 |  0 | = ~5 or -6
------------------------------------------


7 & ~5一样使用&运算符可得到2的预期结果,因为两行都只设置了2列。让我在这里的是7 | ~5输出-1。我希望它可以是255,因为每列中都有1,或者是5,因为最下面一行可能是0而不是1。但这都不是,而是-1。

我一直在谷歌上搜索,直到我的大脑受伤为止,而且我找不到任何一篇文章可以解决这个问题。有人知道这是怎么回事吗?

最佳答案

7 | ~5的结果是全部为1的位模式。那是-1的二补数。

07-24 09:44
查看更多