當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript 32位整型无符号操作
生活随笔
收集整理的這篇文章主要介紹了
JavaScript 32位整型无符号操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在 JavaScript 中,所有整數字變量默認都是有符號整數,這意味著什么呢?
有符號整數使用 31 位表示整數的數值,用第 32 位表示整數的符號,0 表示正數,1 表示負數。
數值范圍從 -2^31 - 2^31-1 即 -2147483648 到 2147483647。
JavaScript 進行位操作時,是采用32位 有符號 整型,這意味著其轉換的結果也是32位有符號整型。 有些時候,我們進行移位會出現意想不到的結果,以下是C語言 與 JS 的對比。
C語言
1 unsigned int a = 3774191835u; 2 unsigned int b = a >> 2; 3 /* b == 943547958 */JavaScript
1 var a = 3774191835; 2 var b = a >> 2; 3 /* b == -130193866 */可以看到,JavaScript 進行位運算時,是采用的有符號整型,故我們得到了不一樣的結果。 怎么解決呢?
我們可以把JavaScript 中的有符號數,轉換成無符號數。只需要進行 >>>0 移位操作就好了。
最好不要使用 >> ,推薦使用 >>> 因為最左邊一位會被解析成符號位,當數字溢出時,會被解析成負數。
轉載于:https://www.cnblogs.com/owenyang/p/3462245.html
總結
以上是生活随笔為你收集整理的JavaScript 32位整型无符号操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: InvokeHelper,让跨线程访问/
- 下一篇: sqlite数据库实现字符串查找的方法(