如何在不使用第三个变量的情况下交换2个整数,以使其适用于所有整数范围。我知道通常我们会执行以下逻辑。
int a, b;
a = 10;
b = 30;
a = a + b;
b = a - b;
a = a - b;
但是,如果(a + b)给出的值大于整数范围,则此逻辑将失败。还有其他逻辑吗?
我相信您正在寻找XOR交换:
if (a != b) {
a ^= b;
b ^= a;
a ^= b;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句