PHP 左移表达式语句(<<)如何理解$bytes /= (1 << (10 \* 3)); ?

新手上路,请多包涵

$bytes /= (1 << (10 * 3));

阅读 2.4k
1 个回答

1 << x等于2^x。这是左移操作符,对二进制进行左移。
来看1 << 30。它代表将1左移30位,也就是
01000000000000000000000000000000
输出结果为:

1 << 30 = 1073741824

另外

x /= y 相当于 x = x / y

则问题公式相当于

$bytes = $bytes / 1073741824;
推荐问题