[英]Why does the '<<' operator sometimes behave differently in Javascript and PHP?
請使用以下代碼段:
<script>
var x = 25;
document.write(x << 9);
</script>
<?php
$x = 25;
echo ($x << 9);
?>
輸出: 12800 12800
好。 正常到目前為止......現在讓我們試試這個:
<script>
var x = 12345678;
document.write(x << 9);
</script>
<?php
$x = 12345678;
echo ($x << 9);
?>
這次輸出是2026019840 6320987136
為什么后兩個值不同? 而且,最重要的是(對我而言),如何讓PHP實現執行Javascript實現的功能? 換句話說,我希望我的PHP代碼輸出2026019840而不是6320987136
使用(x << 9) % 0x100000000
或其等效的PHP。 (或你剛才說的)
PHP給你一個64位的結果。 Javascript只是給你較低的32位。 如果在PHP中使用(x << 9) & 0xFFFFFFFF
,則會得到低32位。
你可能會遇到符號位問題。 試試(23456789 << 9)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.