今天,我一直在尝试再次找出按位运算符,但有些事情对我还是有些模糊。一切都是有意义的,直到我开始尝试合并|带〜的运算符,例如: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的二补数。