PHP运算符<<

Pet*_*gad 21 php operators

<<运算符在php中意味着什么?

例:

$t = 5;
$foo = 1 << ($t);
echo($foo); 
Run Code Online (Sandbox Code Playgroud)

echo产生:32

谢谢

Cam*_*ner 41

它是按位移位运算符.具体来说,是左移算子.它采用左手参数并将二进制表示向左移动右手参数指定的位数,例如:

1 << 2 = 4
Run Code Online (Sandbox Code Playgroud)

因为1(十进制)是1(二进制); 左移两次使得它1004十进制的.

1 << 5 = 32
Run Code Online (Sandbox Code Playgroud)

因为100000二进制是32十进制的.

右移(>>)做同样的事情,但右边.


Rag*_*geD 7

"<<"是一个向左移位.请查看PHP的按位运算符.http://php.net/manual/en/language.operators.bitwise.php

更深入的解释:

这意味着乘以2,因为它适用于二进制级别.例如,如果您的二进制数为5

 0101
Run Code Online (Sandbox Code Playgroud)

并且你向左移位一次(将每个位移到一个位置)

 1010
Run Code Online (Sandbox Code Playgroud)

然后你的结果是10.使用二进制(从右到左)是2 ^ 0,2 ^ 1,2 ^ 2,2 ^ 3,依此类推.如果你看到1,你可以添加相应的2的幂.所以我们对新结果的数学计算如下:

 0 + 2^1 + 0 + 2^3
 0 + 2   + 0 + 8 = 10
Run Code Online (Sandbox Code Playgroud)

祝好运!
丹尼斯·M


Pra*_*ant 6

获得左移操作结果的简单技巧,例如

15 << 2 = 15 * (2*2) = 60

15 << 3 = 15 * (2*2*2) = 120

15 << 5 = 15 * (2*2*2*2*2) = 480

等等..

所以是:

(左边的数字)乘以(右边的数字)乘以 2。

右移运算符 (>>) 也是如此,其中:

(左边的数字)除以(右边的数字)乘以 2