php按位XOR运算符^(插入符号)与整数

时间:2018-03-18 20:54:54

标签: php

嗨,我只是想知道是否有人可以向我解释以下php代码如何评估为5

 <?php
      $a = 12 ^ 9;
      echo $a;
 ?>

所以我知道输出将是5,但有人可以向我解释这是如何工作的吗?

3 个答案:

答案 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)

你所说的^运算符是按位的,所以它将整数转换为二进制值。

1200001100二进制文件。

900001001二进制文件。

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      |
+---+---+--------+