我有两个号码,也可以是任何号码。我想将这些数字加在一起,但是采用特殊的“二进制”方式。
假设我有以下两个数字:7
和9
。他们的二进制形式是:
0111 = 7
1001 = 9
我需要一种方法以二进制形式将7
和9
加在一起,但只有两位不同的地方。如果它们不同,则应将不同的位设置为1
。
以7
和9
为例,我想要的结果是:
0111 = 7
1001 = 9
---- +
1111
有没有办法在PHP中执行这样的操作?
答案 0 :(得分:6)
$result = 7 | 9;
答案 1 :(得分:3)
如果它们不同,则应将其他位设置为1
您要问的是按位异或“
echo 7^9;
// = 1110
但是你显示它应该是1111
,它实际上是按位OR,
echo 7|9
// = 1111
答案 2 :(得分:1)
您的描述要求按位异或,但您给出的示例演示了常规的按位OR。在解决任何问题之前,您需要明确定义它。