加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

交换A、B值的三种方法

(2008-09-24 23:06:02)
标签:

it

分类: Java

1. 利用异或运算^交换两个整数值

  异或的运算方法是一个二进制运算:
  1^1=0
  0^0=0
  1^0=1
  0^1=1
  两者相等为0,不等为1

  这样我们发现交换两个整数(只能用于整数)的值时可以不用第三个参数。
  如a=11,b=9.以下是二进制
  a=a^b=1011^1001=0010;
  b=b^a=1001^0010=1011;
  a=a^b=0010^1011=1001;
  这样一来a=9,b=13了。

2.交换两个数而不用第三个参数还有一个方法,考虑有两个容器A、B,A内部装了一部分水(假设为三分之一容器体积),B内部装了一部分油(也假设占三分之一容器),我们若要交换A、B的内容,可以这样做,把A中的水倒入B中(B=A+B),再将B中的油转入A中(因比重不同,两种物质自然分开,我们假设有方法可以让他们完全分开,即有A=B-A,因A的值还是水的值,B=B-A;这样A、B的值就交换了;

      如A=11,B=9

      则有  B=A+B=20;A=B-A=20-11=9;B=B-A=20-9=11

3.利用第三个参数C

  C=A;A=B;B=C

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有