黑马程序员技术交流社区

标题: 交换两个整数的值(异或法) [打印本页]

作者: 牛牛很牛    时间: 2016-5-24 22:50
标题: 交换两个整数的值(异或法)
本帖最后由 牛牛很牛 于 2016-5-24 22:53 编辑

#include <stdio.h>
int main(int argc, const char * argv[]){
    int a ,b;
    a ^= b;  //a=a^b
   b ^= a;      //b=b^(a^b)=b^a^b=b^b^a=0^a=a
    a ^= b; //a=(a^b)^a=a^b^a=a^a^b=0^b=b
    printf("%d %d\n",a,b);
}
异或法,要比引用第三个值和加减法牛逼多了
ps.还有一个乘除法,和加减法同样原理  
a = a * b;
b = a / b;
a = a / b;









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2