嗨,我只是想知道是否有人可以向我解释以下php代码如何评估为5
<?php
$a = 12 ^ 9;
echo $a;
?>
所以我知道输出将是5,但有人可以向我解释这是如何工作的吗?
答案 0 :(得分:1)
据我了解这个过程,php将数字转换为二进制数并对它们执行XOR操作。
12 -> 1100
9 -> 1001
1100 XOR 1001 = 0101 = 5.
答案 1 :(得分:1)
12 = 1100
09 = 1001
Xor = 0101 = 5
排他或意味着同一位置只有1位为高位。
答案 2 :(得分:1)
你所说的^
运算符是按位的,所以它将整数转换为二进制值。
12
是00001100
二进制文件。
9
是00001001
二进制文件。
A: 00001100 12
XOR(^)
B: 00001001 9
---------
Output: 00000101 5
如果仅其中一个输入为1
,则只需1
,这里是XOR的真值表:
+---+---+--------+
| A | B | Output |
+---+---+--------+
| 0 | 0 | 0 |
+---+---+--------+
| 0 | 1 | 1 |
+---+---+--------+
| 1 | 0 | 1 |
+---+---+--------+
| 1 | 1 | 0 |
+---+---+--------+