黑马程序员技术交流社区
标题: 交换两个整数的值(异或法) [打印本页]
作者: 牛牛很牛 时间: 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 |