我今天一直在尝试再次找出按位运算符,有些事情对我来说仍然有点模糊。在我开始尝试结合 | 之前,一切都是有意义的。带有 ~ 的运算符,例如:number | ~number
. 在旁注中,我已经阅读了关于二进制补码的维基百科文章,并理解了它的这一方面(我认为)。
------------------------------------------
| 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。
我已经用谷歌搜索了这个,直到我的大脑受伤,我在任何地方都找不到一篇解决这个问题的文章。有谁知道这里发生了什么?