按位左移运算符

时间:2018-11-17 15:14:28

标签: php bit

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

输出为368。它将如何?

我希望是92。

a是23

以2为底的a是10111

so a in 8 bits 00010111

左屎4是01110000

是-92

有人可以解释我吗?

2 个答案:

答案 0 :(得分:1)

在此处查看bitwise操作手册

23转换为二进制,它为10111,当您执行左移按位运算符时,其值为101110000,当您将其转换为十进制时,其值为{{1} }。

答案 1 :(得分:1)

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