我一直在努力处理 PHP 中的移位运算符,假设它在算术运算之前,如 +、1 等。我在 php 手册中找不到任何定义。
假设我有值 1,我想要 3,然后是 7,等等,从右边(LSB)填充位。
我试过:
$X = 1;
然后,在一个循环中:
$X <<= 1 + 1; // returns 4 instead of 3.
$X <<= 1 + 1; // returns 16 instead of 7.
所以显然 1+1 是在移位之前计算的。我的解决方案:
$X = 1;
$X <<= 1; // $X=2
$X += 1; // $X=3 as expected
$X <<= 1; // $X=6
$X += 1; // $X=7 as expected
这有点笨拙,但这会返回正确的数字。第一种方法不应该产生正确的结果,先移位然后再做算术吗?
墨色风雨
慕尼黑的夜晚无繁华
繁星coding