C 中的异或运算符问题

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

以下哪个选项可以实现对

(*, *)
的交换效果?注意,^代表异或运算。对于二进制数,0 XOR 0 = 0、0 XOR 1 = 1、1 XOR 0 = 1、1 XOR 1 = 0。

A.

(x, y): x ^= y ^= x ^= y;

B.

(a[x], a[y]): a[x] ^= a[y] ^= a[x] ^= a[y];

C.

(x, y): x -= y += x -= y;

D。

(a[x], a[y]): a[x] -= a[y] += a[x] -= a[y];

我发现C和D在逻辑上不正确。我猜 A 是正确的。但我不知道A和B有什么区别?

c xor
1个回答
0
投票

选项A使用XOR运算来交换x和y的值。 选项 B 使用对 数组元素进行 XOR 运算,获得与选项 A 相同的结果。

© www.soinside.com 2019 - 2024. All rights reserved.