按位左移运算符
Bitwise Left Shift operator
$a = 23;
$res = $a << 4
print($res);
对于上面粘贴的代码片段,输出为 368。它是如何计算的?
我预计 92。
a 是 23
a 以 2 为基数是 10111
所以8位中的a是00010111
左移4为01110000
是 - 92
有人能给我解释一下吗?
在此处查看 bitwise 操作手册
将23
转成二进制为10111
,按位运算符左移时为101110000
,转为十进制为368
.
这就是它返回 368 的原因,因为 $a << $b
将 $a $b
步骤的位移到了 左边
23
256 128 64 32 16 8 4 2 1
X X X X 1 0 1 1 1
在$a << 4
之后
368
256 128 64 32 16 8 4 2 1
1 0 1 1 1 0 0 0 0
$a = 23;
$res = $a << 4
print($res);
对于上面粘贴的代码片段,输出为 368。它是如何计算的?
我预计 92。
a 是 23
a 以 2 为基数是 10111
所以8位中的a是00010111
左移4为01110000
是 - 92
有人能给我解释一下吗?
在此处查看 bitwise 操作手册
将23
转成二进制为10111
,按位运算符左移时为101110000
,转为十进制为368
.
这就是它返回 368 的原因,因为 $a << $b
将 $a $b
步骤的位移到了 左边
23
256 128 64 32 16 8 4 2 1
X X X X 1 0 1 1 1
在$a << 4
368
256 128 64 32 16 8 4 2 1
1 0 1 1 1 0 0 0 0