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

