如何使用按位运算符“添加”两个数字?

时间:2012-11-24 22:07:27

标签: php bitwise-operators

我有两个号码,也可以是任何号码。我想将这些数字加在一起,但是采用特殊的“二进制”方式。

假设我有以下两个数字:79。他们的二进制形式是:

0111 = 7
1001 = 9

我需要一种方法以二进制形式将79加在一起,但只有两位不同的地方。如果它们不同,则应将不同的位设置为1

79为例,我想要的结果是:

0111 = 7
1001 = 9
---- +
1111

有没有办法在PHP中执行这样的操作?

3 个答案:

答案 0 :(得分:6)

Bitwise operators

$result = 7 | 9;

答案 1 :(得分:3)

  

如果它们不同,则应将其他位设置为1

您要问的是按位异或“

echo 7^9; 
// = 1110

但是你显示它应该是1111,它实际上是按位OR,

echo 7|9
// = 1111

答案 2 :(得分:1)

您的描述要求按位异或,但您给出的示例演示了常规的按位OR。在解决任何问题之前,您需要明确定义它。