首頁 > web前端 > js教程 > 主體

JavaScript 32位元整數無符號操作範例_javascript技巧

WBOY
發布: 2016-05-16 17:10:29
原創
1323 人瀏覽過

在 JavaScript 中,所有整數變數預設都是有符號整數,這代表什麼呢?

有符號整數使用 31 位元表示整數的數值,用第 32 位元表示整數的符號,0 表示正數,1 表示負數。
數值範圍從 -2^31 - 2^31-1 即 -2147483648 到 2147483647。

JavaScript 進行位元操作時,是採用32位元 有符號 整數型,這表示其轉換的結果也是32位元有符號整數。 有些時候,我們進行移位會出現意想不到的結果,以下是C語言 與 JS 的比較。

C語言

複製程式碼 程式碼如下:


程式碼如下:


3774191835u;
unsigned int b = a >> 2;
/* b == 943547958 */ JavaScript
JavaScript



JavaScript

複製程式碼


程式碼如下:

var a = 3774191835; var b = a >> 2; /* b == -130193866 * / 可以看到,JavaScript 進行位元運算時,是採用的有符號整型,故我們得到了不一樣的結果。 怎麼解決呢? 我們可以把JavaScript 中的有符號數,轉換成無符號數。只需要進行 >>>0 移位操作就好了。 最好不要使用 >> ,建議使用 >>> 因為最左邊一位會被解析成符號位,當數字溢位時,會被解析成負數。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!