我不清楚以下代码片段。
$a = (5 << 0);
$b = (6 << 1);
echo $a|$b;
从php.net我知道&lt;&lt;操作员使用左移但不清楚它是如何工作的以及|的用途是什么运营商。 任何解释都非常感谢。 谢谢
答案 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)