为什么以下代码输出128?
<?php
print 4 << 5;
?>
请参考位运算符:
我们需要找到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
将$a$的比特位向左移动$b$步(每个步骤表示“乘以二”)
所以是五步。这是4 * 2 * 2 * 2 * 2 * 2(但我猜测;所有操作都在比特级别上进行)。