【发布时间】:2011-05-28 00:01:01
【问题描述】:
例子:
$t = 5;
$foo = 1 << ($t);
echo($foo);
回声产生:32
【问题讨论】:
例子:
$t = 5;
$foo = 1 << ($t);
echo($foo);
回声产生:32
【问题讨论】:
它是 按位移位 运算符。具体来说,左移运算符。它采用左侧参数并将二进制表示向左移动右侧参数指定的位数,例如:
1 << 2 = 4
因为 1(十进制)是 1(二进制);左移两次使其成为100,即十进制的4。
1 << 5 = 32
因为二进制的100000 是十进制的32。
右移 (>>) 做同样的事情,但向右移动。
【讨论】:
<< 2。更新了答案以澄清。
"http://php.net/manual/en/language.operators.bitwise.php
更深入的解释:
这意味着乘以 2,因为它适用于二进制级别。例如,如果你有二进制数字 5
0101
然后你左移一次到(将每个位移动一个位置)
1010
那么你的结果是 10。使用二进制(从右到左)是 2^0、2^1、2^2、2^3 等等。如果您看到 1,则添加相应的 2 的幂。因此我们的新结果的数学运算如下所示:
0 + 2^1 + 0 + 2^3
0 + 2 + 0 + 8 = 10
祝你好运!
丹尼斯 M.
【讨论】:
获取左移操作结果的简单技巧,例如
15
15
15
等等..
原来如此:
(左边的数字)乘以(右边的数字)乘以 2。
右移运算符 (>>) 也是如此,其中:
(左边的数字)除以(右边的数字)乘以 2
【讨论】:
【讨论】:
<< 按位左移。此操作移动左侧操作数的位
向左移动与右操作数相等的位置,
在移位的位置插入未设置的位。
>> 按位右移。此操作移动左侧操作数的位
向右移动数等于右操作数的位置,
在移位的位置插入未设置的位。
注意:有趣的是,这两个提供了一个简单(而且非常快速) 将整数乘以/除以 2 的幂的方式。例如:1
【讨论】: