逐位左移运算符

  • 本文关键字:运算符 左移 php bit
  • 更新时间 :
  • 英文 :

$a = 23;
$res = $a << 4 
print($res);

对于上面粘贴的代码片段,输出为368。它是如何计算的?

我本以为92岁。

a是23

基地2中的a是10111

所以8位中的a是00010111

左移4为01110000

是-92

有人能解释我吗?

这就是它返回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 

点击此处查看按位操作手册

23转换为二进制,它是10111,当您执行左移位逐位运算符时,它的值将是101110000,当您将其转换为十进制时,它将变为368

最新更新