JavaScript 代码:
console.log( 1 << 5 );
console.log( 1111044149 << 2 );
JavaScript 输出:
32
149209300
PHP代码:
var_dump( 1 << 5 );
var_dump( 1111044149 << 2 );
PHP 输出:
32
4444176596
Why 1111044149 << 2
PHP 和 javascript 有区别吗?我正在为 PHP 编写一段 javascript 代码,所有的工作都比这部分少,我需要 PHP 代码显示在 javascript 中获得的类似结果才能完美。
JavaScript 中按位运算的操作数始终被视为 int32,但在 PHP 中并非如此。因此,当执行左移时1111044149
,这发生在 JS 中:
01000010001110010011000000110101 (original, 32-bit)
00001000111001001100000011010100 (left shifted 2 positions, "01" is truncated)
= 149209300
在 PHP 中,这些位不会被截断,因为它不被视为 32 位整数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)