Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2783215
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: C/C++

2012-07-15 20:48:02


点击(此处)折叠或打开

  1. #include<stdio.h>
  2. /*xor运算的逆运算是它本身,也就是说
  3.   两次异或同一个数最后结果不
  4.  a:=a xor b;
  5.  b:=a xor b;
  6.  a:=a xor b;
  7. */
  8. void swap(int &a, int &b)
  9. {
  10.     /*
  11.     位运算版本的交换两数不适用于一个数的自我交换。也就是说,
  12.     如果上述程序的“b”改成“a”的话,其结果是变量a变成零。
  13.     */
  14.     if(a!=b)
  15.     {
  16.         a=a^b;
  17.         b=a^b;
  18.         a=a^b;
  19.     }
  20. }

  21. int main()
  22. {
  23.     int a=1,b=3;
  24.     swap(a,b);
  25.     printf("%d %d\n",a,b);
  26.     return 0;
  27. }

阅读(671) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~