簡體   English   中英

為什么'<<'運算符在Javascript和PHP中的行為有時會有所不同?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM