$a = 23;
$res = $a << 4
print($res);
输出为368。它将如何?
我希望是92。
a是23
以2为底的a是10111
so a in 8 bits 00010111
左屎4是01110000
是-92
有人可以解释我吗?
答案 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