我在编写最多 7 个 ~ 和 | 的按位 XNOR 函数时遇到困难运营商。示例:bitXor(6, -5) = 2。如果没有 &,我该如何做到这一点?
到目前为止我有这个:
int bitXnor(int x, int y) {
return ~(~x | ~y);
但我收到错误: 错误:测试 bitXnor(-2147483648[0x80000000],-2147483648[0x80000000])失败... ...给出-2147483648[0x80000000]。应该是-1[0xffffffff]
取反 (
~
) 任一参数并对它们进行异或 (^
)
int bitXnor(int x, int y) {
return x ^ ~y;
}