数值交换

Posted _拥你一生,如沐星辰_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数值交换相关的知识,希望对你有一定的参考价值。

实例十四:数值交换

显然,实现数值交换的方法有很多,在此列举三种进行对比:

方法一:利用第三变量进行交换
定义:a,b,temp
{
  temp=a
  b=a
  b=temp
}

方法二:不利用第三变量
  a,b
{
  a=a+b
  b=a-b
  a=a-b
}


方法三:利用位操作符,逻辑与方法二类似
a,b
{
  a=a^b
  b=a^b    等价于  b=(a^b)^b
  a=a^b    等价于  a=(a^b)^(a^b)
}

{
  a ^= b;
  b ^= a;
  a ^= b;
}

方法一和方法二 用数字代入就可以明白了,故不加以解释。


方法三解释:

为了看得清晰,使用三个变量
   a=3,b=4,c
a     0000 0011 --3
b     0000 0100 --4

c=a^b   0000 0111 --7

b=c^b   0000 0011 --3
a=c^b   0000 0100 --4

 

代码:

int _tmain(int argc, _TCHAR* argv[])
{
  int a, b;

  cout << "请输入要进行交换的两个数值:";
  cin >> a >> b;

  a ^= b;
  b ^= a;
  a ^= b;

  cout << endl << "结果为:";
  cout << a << " " << b;

  system("pause");
  return 0;
};

 

以上是关于数值交换的主要内容,如果未能解决你的问题,请参考以下文章

062-PHP函数按值传参,交换数值函数

程序实现两个整型数值的交换

交换两个变量的值(指针用法)

两个数值变量交换数值的几种方式

不用中间变量交换两个数值变量的值

交换两个整形变量的数值