JavaScript 32位整型無符號操作示例
更新時間:2013年12月08日 17:17:27 作者:
所有整數(shù)字變量默認都是有符號整數(shù),JavaScript 進行位操作時,是采用32位有符號整型,這意味著其轉(zhuǎn)換的結(jié)果也是32位有符號整型
在 JavaScript 中,所有整數(shù)字變量默認都是有符號整數(shù),這意味著什么呢?
有符號整數(shù)使用 31 位表示整數(shù)的數(shù)值,用第 32 位表示整數(shù)的符號,0 表示正數(shù),1 表示負數(shù)。
數(shù)值范圍從 -2^31 - 2^31-1 即 -2147483648 到 2147483647。
JavaScript 進行位操作時,是采用32位 有符號 整型,這意味著其轉(zhuǎn)換的結(jié)果也是32位有符號整型。 有些時候,我們進行移位會出現(xiàn)意想不到的結(jié)果,以下是C語言 與 JS 的對比。
C語言
unsigned int a = 3774191835u;
unsigned int b = a >> 2;
/* b == 943547958 */
JavaScript
var a = 3774191835;
var b = a >> 2;
/* b == -130193866 */
可以看到,JavaScript 進行位運算時,是采用的有符號整型,故我們得到了不一樣的結(jié)果。 怎么解決呢?
我們可以把JavaScript 中的有符號數(shù),轉(zhuǎn)換成無符號數(shù)。只需要進行 >>>0 移位操作就好了。
最好不要使用 >> ,推薦使用 >>> 因為最左邊一位會被解析成符號位,當數(shù)字溢出時,會被解析成負數(shù)。
有符號整數(shù)使用 31 位表示整數(shù)的數(shù)值,用第 32 位表示整數(shù)的符號,0 表示正數(shù),1 表示負數(shù)。
數(shù)值范圍從 -2^31 - 2^31-1 即 -2147483648 到 2147483647。
JavaScript 進行位操作時,是采用32位 有符號 整型,這意味著其轉(zhuǎn)換的結(jié)果也是32位有符號整型。 有些時候,我們進行移位會出現(xiàn)意想不到的結(jié)果,以下是C語言 與 JS 的對比。
C語言
復(fù)制代碼 代碼如下:
unsigned int a = 3774191835u;
unsigned int b = a >> 2;
/* b == 943547958 */
JavaScript
復(fù)制代碼 代碼如下:
var a = 3774191835;
var b = a >> 2;
/* b == -130193866 */
可以看到,JavaScript 進行位運算時,是采用的有符號整型,故我們得到了不一樣的結(jié)果。 怎么解決呢?
我們可以把JavaScript 中的有符號數(shù),轉(zhuǎn)換成無符號數(shù)。只需要進行 >>>0 移位操作就好了。
最好不要使用 >> ,推薦使用 >>> 因為最左邊一位會被解析成符號位,當數(shù)字溢出時,會被解析成負數(shù)。
相關(guān)文章
JavaScript中使用webuploader實現(xiàn)上傳視頻功能(demo)
這篇文章主要介紹了webuploader實現(xiàn)上傳視頻功能,通過本文給大家介紹了上傳視頻和上傳圖片的區(qū)別講解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-04-04
用javascript實現(xiàn)始終保持打開同一個子窗口以及關(guān)閉父窗口同時自動關(guān)閉所有子窗口
用javascript實現(xiàn)始終保持打開同一個子窗口以及關(guān)閉父窗口同時自動關(guān)閉所有子窗口...2007-06-06
javascript和jquery實現(xiàn)用戶登錄驗證
這篇文章主要為大家詳細介紹了javascript和jquery分別實現(xiàn)用戶登錄驗證的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05
JS前端框架關(guān)于重構(gòu)的失敗經(jīng)驗分享
關(guān)于重構(gòu)JS前端框架的失敗經(jīng)驗接下來與大家分享一下,感興趣的你可不要錯過了哈,畢竟是經(jīng)驗之談哈2013-03-03
JavaScript 斐波那契數(shù)列 倒序輸出 輸出100以內(nèi)的質(zhì)數(shù)代碼實例
這篇文章主要介紹了JavaScript 斐波那契數(shù)列 倒序輸出 輸出100以內(nèi)的質(zhì)數(shù)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09
Web版彷 Visual Studio 2003 顏色選擇器
Web版彷 Visual Studio 2003 顏色選擇器...2007-01-01

