JavaScript 32位整型无符号操作示例


Posted in Javascript onDecember 08, 2013

在 JavaScript 中,所有整数字变量默认都是有符号整数,这意味着什么呢?

有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数。
数值范围从 -2^31 - 2^31-1 即 -2147483648 到 2147483647。

JavaScript 进行位操作时,是采用32位 有符号 整型,这意味着其转换的结果也是32位有符号整型。 有些时候,我们进行移位会出现意想不到的结果,以下是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 进行位运算时,是采用的有符号整型,故我们得到了不一样的结果。 怎么解决呢?

我们可以把JavaScript 中的有符号数,转换成无符号数。只需要进行 >>>0 移位操作就好了。

最好不要使用 >> ,推荐使用 >>> 因为最左边一位会被解析成符号位,当数字溢出时,会被解析成负数。

Javascript 相关文章推荐
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
javascript面向对象包装类Class封装类库剖析
Jan 24 Javascript
纯js简单日历实现代码
Oct 05 Javascript
javascript面向对象特性代码实例
Jun 12 Javascript
js下将金额数字每三位一逗号分隔
Feb 19 Javascript
jQuery事件用法详解
Oct 06 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
JavaScript 栈的详解及实例代码
Jan 22 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
Apr 24 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 #Javascript
js快速排序的实现代码
Dec 08 #Javascript
Javascript中匿名函数的多种调用方式总结
Dec 06 #Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 #Javascript
JavaScript作用域与作用域链深入解析
Dec 06 #Javascript
深入解析JavaScript中的变量作用域
Dec 06 #Javascript
关于Javascript作用域链的八点总结
Dec 06 #Javascript
You might like
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
php 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
php中autoload的用法总结
2013/11/08 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
js获取Get值的方法
2016/09/29 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
Python模拟登录12306的方法
2014/12/30 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
Python中join函数简单代码示例
2018/01/09 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
大学生求职自荐信
2013/12/12 职场文书
给客户的道歉信
2014/01/13 职场文书
社区活动总结
2015/02/04 职场文书