博客列表 >不借助第三个变量的情况下交换两个变量的值

不借助第三个变量的情况下交换两个变量的值

萝卜温的博客
萝卜温的博客原创
2018年07月11日 15:07:021299浏览
1.最常见的方法是借助第三个变量,这个也方便,也不损耗太多资源!
$a = 10;
$b = 20;
$temp = $a;
$a = $b;//20
$b = $temp;//10

2.使用数学的计算,通常是记录两个数之间的距离就行了
$a = 10;
$b = 20;
$a = $a - $b;  //-10
$b = $a + $b;  //-10 + 20 = 10
$a = $b - $a;  //10 - (-10) = 20

3.使用异或按位运算,定理:a = 1100, b = 1010, a^b^b = a
$a = 12;   //二进制 1100
$b = 10;   //二进制 1010
$a = $a ^ $b;    //糅合了$a和$b的值到二进制 0110 = 5
$b = $a ^ $b;    //二进制 1100 = 12
$a = $a ^ $b;    //二进制 1010 = 10

4.不知道怎么做,感觉没什么用吧,直接上代码吧!
/*********C语言版*************/
int a = 10;   //一个存储单元存储着值 10,指针ap和a关联在一起
int b = 20;   //一个存储单元存储着值 20,指针bp和b关联在一起
//接下来就是将 a => bp, b => ap ,这样子就能交换值了,不知道C语言应该怎么实现^_^


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议