Php 谁能告诉我为什么这个功能可以工作?
RT,为什么它可以交换两个数字或字符串?这称为异或交换。XOR具有有趣的特性Php 谁能告诉我为什么这个功能可以工作?,php,bit-manipulation,operators,swap,Php,Bit Manipulation,Operators,Swap,RT,为什么它可以交换两个数字或字符串?这称为异或交换。XOR具有有趣的特性 异或A=0 异或0=A 所以基本上 function swap(&$a,&$b) { $a=$a^$b; $b=$a^$b; $a=$a^$b; } 但是,我不建议您使用XOR交换。它的性能不如使用临时变量进行交换。如果每个人都对这个可爱的神奇异或运算符感兴趣,那么有几个有趣的算法建立在这个相同的概念上: 如果您的C/C++概念清晰,您可以简单地理解它 ^担任XO
- 异或A=0
- 异或0=A
function swap(&$a,&$b)
{
$a=$a^$b;
$b=$a^$b;
$a=$a^$b;
}
但是,我不建议您使用XOR交换。它的性能不如使用临时变量进行交换。如果每个人都对这个可爱的神奇异或运算符感兴趣,那么有几个有趣的算法建立在这个相同的概念上:
$a = $a ^ $b;
$b = $a ^ $b; // which is $b = a XOR b XOR b = a
$a = $a ^ $b; // which is $a = a XOR b XOR a = b
输出:$a=30和$b=20
你可以在很多方面使用它,比如
$a=20;
$b=30;
function swap($a,$b) {
$a=$a*$b;
$b=$a/$b;
$a=$a/$b;
}
非常感谢!我知道“^”的意思是xor,但我不知道$b可以改成那种形式。谢谢你的回答!我已经明白了
function swap($a,$b) {
$a=$a+$b;
$b=$a-$b;
$a=$a-$b;
}