php 位运算符 ^ 计算字符串

$a = "abc";  
$b= "def";  
  
$a = $a^$b;  
$b = $b^$a;  
$a = $a^$b; 


echo $b; //abc
echo $a; //def

就解释计算过程 ,为什么会变量交换

阅读 3.1k
3 个回答
1^1=0
0^0=0
1^0=1
0^1=1
$b^($a^$b)=$a^($b^$b)=$a
$a^($a^$b)=$b^($a^$a)=$b

假设$a的二进制值是1000 $b是1010

//按位异或 方法一采用的是异或的方法。这个方法有个前提条件是$a,$b 的长度须一样 
//$a = $a^$b; // 1000  1010
//echo $a;    // 0010
//$b = $a^$b;      //1010 0010 =1000
//echo $b;   //1000
//$a = $a^$b;  //  0010  1000 = 1010
//echo $a; // 1010
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题