PHP中的奇怪打印行为?

时间:2012-03-15 11:23:39

标签: php echo

为什么以下代码输出128?

<?php 
    print 4 << 5; 
?>

2 个答案:

答案 0 :(得分:14)

因为它是bitwise operator。我认为这意味着4乘以2 ^ 5,因为该算子意味着

  

向左移动$ a $ b步的位(每一步意味着“相乘”   两个“)

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

答案 1 :(得分:14)

请参阅 Bitwise Operators

我们必须找到4&lt;&lt;这意味着将4的位向左移5次:

4 is 00000000000000000000000000000100
4 << 5 after shifting is 00000000000000000000000010000000
00000000000000000000000010000000 is 2^7 = 2*2*2*2*2*2*2 = 128