黑马程序员技术交流社区

标题: 关于两个整数变量互换的问题 [打印本页]

作者: java陈辉    时间: 2013-12-3 22:36
标题: 关于两个整数变量互换的问题
本帖最后由 java陈辉 于 2013-12-4 09:38 编辑

对两个整数变量的值进行互换(不需要第三方变量) a=3,b=7要求将a,b的值互换。求解。
作者: HAnG    时间: 2013-12-3 22:44
本帖最后由 HAnG 于 2013-12-3 22:49 编辑

用异或运算符
a = a^b;
b = a^b;
a = a^b;


作者: .Mr    时间: 2013-12-3 22:48
面试的时候通常用的就是异或的方法,即一个数异或同一个数二次结果还是这个数
a=a^b;
b=a^b;
a=a^b;
还有一种就是:        如果2个整数过大会超出int范围,数据会变化
a = a + b;
b = a - b;
a = a - b;
作者: Faner    时间: 2013-12-4 01:29
第一种  a=3,b=7  a=3+7  b=10-b=10-7=3    a=10-b=10-3=7    结果就是 a=7 b=3

第二就是异或运算符    a = a^b      b = a^b = 3^7^7=3     a =a^b=3^7^3=7
作者: ixiangfeng    时间: 2013-12-4 08:13
.Mr 发表于 2013-12-3 22:48
面试的时候通常用的就是异或的方法,即一个数异或同一个数二次结果还是这个数
a=a^b;
b=a^b;

你确定会超出范围?交换不了吗?
作者: 几番意难相付    时间: 2013-12-4 09:31
a=a+b;
b=a-b;
a=a-b;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2