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 相关文章推荐
js的event详解。
Sep 06 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
Mar 03 Javascript
Javascript 多物体运动的实现
Dec 24 Javascript
jquery中JSON的解析方式
Mar 16 Javascript
实例代码讲解jquery easyui动态tab页
Nov 17 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
JavaScript实现替换字符串中最后一个字符的方法
Mar 07 Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
Mar 21 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
May 27 Javascript
javascript数组的定义及操作实例
Nov 10 Javascript
微信小程序地图绘制线段并且测量(实例代码)
Jan 02 Javascript
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
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
PHP自定义多进制的方法
2016/11/03 PHP
javascript 数组排序函数
2009/08/20 Javascript
js 幻灯片的实现
2011/12/06 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
python使用正则表达式提取网页URL的方法
2015/05/26 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
python把转列表为集合的方法
2019/06/28 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
企业面试题试卷附带答案
2015/12/20 面试题
机械设计制造专业个人求职信
2013/09/25 职场文书
大学毕业生的自我鉴定
2013/11/30 职场文书
农民致富事迹材料
2014/01/23 职场文书
干部现实表现材料
2014/02/13 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
2014年计生标语
2014/06/23 职场文书