A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© java陈辉 中级黑马   /  2013-12-3 22:36  /  1241 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 java陈辉 于 2013-12-4 09:38 编辑

对两个整数变量的值进行互换(不需要第三方变量) a=3,b=7要求将a,b的值互换。求解。

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 鼓励新人!!!

查看全部评分

5 个回复

倒序浏览
本帖最后由 HAnG 于 2013-12-3 22:49 编辑

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

回复 使用道具 举报
面试的时候通常用的就是异或的方法,即一个数异或同一个数二次结果还是这个数
a=a^b;
b=a^b;
a=a^b;
还有一种就是:        如果2个整数过大会超出int范围,数据会变化
a = a + b;
b = a - b;
a = a - b;

评分

参与人数 1黑马币 +3 收起 理由
简★零度 + 3

查看全部评分

回复 使用道具 举报
第一种  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

评分

参与人数 1黑马币 +3 收起 理由
简★零度 + 3

查看全部评分

回复 使用道具 举报
.Mr 发表于 2013-12-3 22:48
面试的时候通常用的就是异或的方法,即一个数异或同一个数二次结果还是这个数
a=a^b;
b=a^b;

你确定会超出范围?交换不了吗?
回复 使用道具 举报
a=a+b;
b=a-b;
a=a-b;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马