如何在 C 中进行按位 XNOR

问题描述 投票:0回答:1

我在编写最多 7 个 ~ 和 | 的按位 XNOR 函数时遇到困难运营商。示例:bitXor(6, -5) = 2。如果没有 &,我该如何做到这一点?

到目前为止我有这个:

int bitXnor(int x, int y) {
  return ~(~x | ~y);

但我收到错误: 错误:测试 bitXnor(-2147483648[0x80000000],-2147483648[0x80000000])失败... ...给出-2147483648[0x80000000]。应该是-1[0xffffffff]

c bit-manipulation xor bitwise-xor
1个回答
0
投票

取反 (

~
) 任一参数并对它们进行异或 (
^
)

int bitXnor(int x, int y) { 
  return x ^ ~y;
}
© www.soinside.com 2019 - 2024. All rights reserved.