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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如何做到  将两个变量的值互换  但是不采用第三变量介入    感觉要迷糊了

5 个回复

倒序浏览
按位异或
a=a^b;
b=a^b;  //b=(a^b)^b(一个数同时异或另外一个数两次等于这个数)  =>  b=a=3
a=a^b;  //a=a^(a^b)  => a=b=8
回复 使用道具 举报 1 0
运用位运算:一个数同时异或另外一个数两次等于这个数
回复 使用道具 举报
本帖最后由 ancheng 于 2016-6-7 19:31 编辑
  1. a = a ^ b;
  2.                 b = a ^ b;  //(a^b)^b  
  3.                 a = a ^ b;  //(a ^ b) ^ b
  4.                
  5.                 a = a + b;
  6.                 b = a - b;
  7.                 a = a - b;
复制代码
回复 使用道具 举报
位移运算符
回复 使用道具 举报
除了第三方变量外还有有两种方式:
第一种方式:
m=m^n
n=m^n  此时也就是n=(m^n)^n
m=m^n此时是m=m^(m^n)
这样就把m,n的值交换了
第二种方式:
m=m+n;
n=m-n;此时也就是n=(m+n)-n
m=m-n;此时是m=m-(m-n)
回复 使用道具 举报 2 0
您需要登录后才可以回帖 登录 | 加入黑马