首页 > 代码库 > 数值交换
数值交换
实例十四:数值交换
显然,实现数值交换的方法有很多,在此列举三种进行对比:
方法一:利用第三变量进行交换
定义: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;
};
数值交换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。