我正在研究按位运算符,直到一元 ~one 的补码与它们一起使用,它们才有意义。谁能向我解释这是如何工作的?
例如,这些是有意义的,但是除了这些之外的其余计算没有:
1&~0 = 1 (~0 is 1 -> 1&1 = 1)
~0^~0 = 0 (~0 is 1 -> 1^1 = 0)
~1^0 = 1 (~1 is 0 -> 0^1 = 1)
~0&1 = 1 (~0 is 1 -> 1&1 = 1)
~0^~1 = 1 (~0 is 1, ~1 is 0 -> 1^0 = 1)
~1^~1 = 0 (~1 is 0 -> 0^0)
产生的其余结果为负数(如果无符号,则为非常大的数字)或与我所知道的逻辑相矛盾。例如 :
0&~1 = 0 (~1 = 0 therefor 0&0 should equal 0 but they equal 1)
~0&~1 = -2
~1|~0 = -1
等等。你可以指点我了解这个吗?