php synatax $ b =(6<< 1);澄清

时间:2015-06-14 10:19:17

标签: php bit-manipulation bitwise-operators

我不清楚以下代码片段。

$a = (5 << 0);
$b = (6 << 1);
echo $a|$b;

从php.net我知道&lt;&lt;操作员使用左移但不清楚它是如何工作的以及|的用途是什么运营商。 任何解释都非常感谢。 谢谢

4 个答案:

答案 0 :(得分:0)

5 << 0只产生5,因为没有完成转换。 6 << 1将把6(110b)中的位向左移一,这将产生12(1100b)。所以它基本上是两个。

|运算符是按位运算符,或者运算在5(0101b)和12(1100b)的位上,产生13(1101b)

答案 1 :(得分:0)

6是&#39; 110&#39;在二进制。如果你转移&#39; 110&#39;一旦到了左边,你就得到了1100&#39;这是12

答案 2 :(得分:0)

<<是左移位运算符:

00000110是二进制的

6 << 1表示每个位将向左移1:

00000110(6)

变为

00001100(12)

所以... 6 << 1 = 12

5 << 0没有任何区别,因为没有任何位被移位(5 << 0 = 5)。

|是按位'或'运算符:

5|12制作:

00000101 | 00001100

此运算符表示如果两个位都为0,则结果为0,否则为1:

00000101(5)

00001100(12)

00001101(13)

所以5|12 = 13

答案 3 :(得分:0)

希望你能在这里找到解决方案

Strange print behaviour in PHP?

有关详细信息,请查看此链接

Reference - What does this symbol mean in PHP?