PHP中的奇怪打印行为?

yog*_*shK 7 php echo

为什么以下代码输出128?

<?php 
    print 4 << 5; 
?>
Run Code Online (Sandbox Code Playgroud)

Nic*_*tti 14

因为它是一个按位运算符.我认为这意味着4乘以2 ^ 5,因为该算子意味着

将$ a $ b步的位移到左边(每一步意味着"乘以2")

所以这是五个步骤.这是4*2*2*2*2*2(但我猜这里;一切都发生在比特级).


mit*_*esh 14

请参阅按位运算符:

我们必须找到4 << 5.这意味着4向左移动5次:

4 is 00000000000000000000000000000100
4 << 5 after shifting is 00000000000000000000000010000000
00000000000000000000000010000000 is 2^7 = 2*2*2*2*2*2*2 = 128
Run Code Online (Sandbox Code Playgroud)