<?php /** 位运算原理 两个数异或的结果再与其中一个数异或的结果是另外一个数 这涉及到了离散数学中的异或的性质: 1.交换律:A^B=B^A 2.结合律: A^(B^C)=(A^B)^C 3.恒等律:X^0=0 4.归零律:X^X=0 5.自反:A^B^B = A^0=A 根据以上性质: A=A^B B=A^B A=A^B 通过以上三步,能实现在程序中交换两个变量的数值的目标。 */ /** * @desc: 使用异或运算交换两个数 * @param null $str1 * @param null $str2 * @author: icehill */ function swopString(&$str1=null,&$str2=null){ $str1=$str1^$str2; $str2=$str1^$str2; $str1=$str1^$str2; } $a='ABC'; $b='DEF'; swopString($a,$b); var_dump($a); var_dump($b); $c=123; $d=45; swopString($c,$d); var_dump($c); var_dump($d);
作者心情:昨夜西风凋碧树,独上高楼,望尽天涯路。
如无特殊说明,文章均为本站原创,转载请注明出处
- 转载请注明来源:使用位运算交换两个数
- 本文永久链接地址:http://icehill.cn/post/single/info/220.html