不用临时变量交换两个变量的值
2006-02-15 16:10
375 查看
大家对于异或(XOR)的如下性质应该很熟悉:
(X XOR Y) XOR Y = X
(X XOR Y) XOR X = Y
我们可以利用异或(XOR)的这个性质来实现不用临时变量交换两个变量的值。具体代码很简单:
void Swap(int& x, int& y)
{
x = x ^ y;
y = x ^ y;
x = x ^ y;
}
(X XOR Y) XOR Y = X
(X XOR Y) XOR X = Y
我们可以利用异或(XOR)的这个性质来实现不用临时变量交换两个变量的值。具体代码很简单:
void Swap(int& x, int& y)
{
x = x ^ y;
y = x ^ y;
x = x ^ y;
}
相关文章推荐
- 不用临时变量交换两个变量的值
- (1.1.2)C的|、||、&、&&、异或、~、!运算 (交换两个值,不用临时变量)
- 不用临时变量交换两个变量的值——函数对象
- 不用临时变量,交换两个数。
- 交换两个值,不用临时变量(C位运算)
- 不用临时变量交换两个数据
- 从“交换两个变量而不用临时变量”谈起
- 不用临时变量交换两个单精度浮点数的值
- 交换两个元素的值,不用临时变量
- 怎样不用临时变量而交换两个值?
- 不用临时变量实现两个变量交换
- 从“交换两个变量而不用临时变量”谈起
- 用异或运算符实现不用第三个临时变量交换两个变量的值
- 使用位运算交换两个值,不用临时变量
- 交换两个整数值,不用临时变量
- 不用临时变量,只用11个字符交换两个变量的值——窥视C#编译原理的冰山一角
- 不用临时变量实现两个变量的交换
- 不用临时变量 实现两个变量之间的数据交换
- 交换两个变量而不用临时变量
- 交换两个值,而不用临时变量