使用位写入x == y的等价物
什么是与x == y相等的C表达式,它只使用位级(|,〜,^,&)和逻辑(&&,|| ,!)操作? 当x和y相等时它应该返回1,否则返回0。
  表达式x==y等价于逻辑双条件表达式x<->y (如果x和y相等,则计算结果为true)。  双条件是排他或(如果x和y不等价,则评估为真)的逆,如此 
  x==y等价于 
NOT(x XOR y)
这是
  位: ~(x^y) 
逻辑不具有XOR ,因此假设x⊕y =(x∨y)∧!(x∧y)
  逻辑: !((x || y) && !(x && y)) 
  注意:上面的表达式是逻辑上的(一个更好的词可能是代数的?)等价。  按位比较当然只是看每一个比特。  正如@chux指出的那样,如果2个数字在算术上等价,但是具有不同的位模式,这可能会带来意想不到的结果。  如果您正在比较覆盖了==运算符的对象,那么在C++会出现同样的问题。  对于逻辑版本来说,如果x和y不是相同的变量类型,那么可能会发生类型强制转换。 
