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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

不引用第3个变量,将a=1,b=2的值置换?怎样实现这个方法啊,大虾帮忙啊~~~

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

4 个回复

倒序浏览
   法一:进行两个数加减;
int x,y;
x=x+y;
y=x-y;
x=x-y;


   法二:int x=3,y=5;
         int z; z=x;x=y;y=z; 小弊端:相加可能超出int范围

  法三:用异或解;
x=x^y;
y=x^y;

x=x^y;

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
我试了一下 用乘除亦可以。
int x=2;
int y=3;
        x=x*y;
         y=x/y;
         x=x/y;
回复 使用道具 举报
a =1 ; b = 2;
a = a^b;
b = a^b;  
a = a^b;
回复 使用道具 举报
   法一:进行两个数加减;
int x,y;
x=x+y;
y=x-y;
x=x-y;


   法二:int x=3,y=5;
         int z; z=x;x=y;y=z; 小弊端:相加可能超出int范围

  法三:用异或解;
x=x^y;
y=x^y;

x=x^y;

我认为异或的方法不错,一个数异或同一个数两次还是那个数。
但是我们一般就通过第三方变量来交换数据,因为加法运算可能会超出范围,而异或不常用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马