PHP 运算符 <<

发布于 2024-10-08 01:44:42 字数 137 浏览 5 评论 0 原文

<< 是什么意思? php中的运算符是什么意思?

示例:

$t = 5;
$foo = 1 << ($t);
echo($foo); 

echo 产生:32

What does the << Operator mean in php?

Example:

$t = 5;
$foo = 1 << ($t);
echo($foo); 

echo produces: 32

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

天邊彩虹 2024-10-15 01:44:42

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

1 << 2 = 4

因为 1(十进制)是 1(二进制);左移两次使其变为 100,即十进制的 4

1 << 5 = 32

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

右移 (>>) 执行相同的操作,但向右移动。

It is the bitwise shift operator. Specifically, the left-shift operator. It takes the left-hand argument and shifts the binary representation to the left by the number of bits specified by the right-hand argument, for example:

1 << 2 = 4

because 1 (decimal) is 1 (binary); left-shift twice makes it 100 which is 4 in decimal.

1 << 5 = 32

because 100000 in binary is 32 in decimal.

Right shift (>>) does the same thing but to the right.

本宫微胖 2024-10-15 01:44:42

获得左移运算结果的简单技巧,例如

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

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

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

等等..

所以它是:(

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

同样适用右移运算符 (>>),其中:(

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

Easy trick to get result of the left shift operation, e.g.

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

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

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

and so on..

So it's:

(number on left) multiplied by (number on right) times 2.

Same goes for right shift operator (>>), where:

(number on left) divided by (number on right) times 2

你穿错了嫁妆 2024-10-15 01:44:42

“<<”是左移一位。请回顾 PHP 的按位运算符。 http://php.net/manual/en/language.operators.bitwise。 php

更深入的解释:

这意味着乘以二,因为它在二进制级别上工作。例如,如果二进制数为 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

"<<" is a bit-shift left. Please review PHP's bitwise operators. http://php.net/manual/en/language.operators.bitwise.php

A more in-depth explanation:

This means multiply by two because it works on the binary level. For instance, if you have the number 5 in binary

 0101

and you bit-shift left once to (move each bit over one position)

 1010

then your result is 10. Working with binary (from right to left) is 2^0, 2^1, 2^2, 2^3, and so on. You add the corresponding power of two if you see a 1. So our math for our new result looks like this:

 0 + 2^1 + 0 + 2^3
 0 + 2   + 0 + 8 = 10
你又不是我 2024-10-15 01:44:42

<< 按位左移。此操作移动左侧操作数的位
向左移动多个等于右操作数的位置,
在移位的位置插入未设置的位。

>> 按位右移。此操作移动左侧操作数的位
向右移动多个等于右操作数的位置,
在移位的位置插入未设置的位。

注意:值得注意的是,这两个提供了一个简单(而且非常快)的方法
整数乘以/除以 2 的幂的方法。例如:1<<5 结果将是 32......

<< Bitwise left shift. This operation shifts the left-hand operand’s bits
to the left by a number of positions equal to the right operand,
inserting unset bits in the shifted positions.

>> Bitwise right shift. This operation shifts the left-hand operand’s bits
to the right by a number of positions equal to the right operand,
inserting unset bits in the shifted positions.

NOTE: It’s also interesting to note that these two provide an easy (and very fast)
way of multiply/divide integers by a power of two. For example: 1<<5 will give 32 as a result.......

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文