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 相关文章推荐
jquery radio 操作代码
Mar 16 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
Jun 09 Javascript
JavaScript插件化开发教程 (三)
Jan 27 Javascript
jquery操作select元素和option的实例代码
Feb 03 Javascript
hovertree插件实现二级树形菜单(简单实用)
Dec 28 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
Jan 04 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
Mar 04 Javascript
easyui-datagrid特殊字符不能显示的处理方法
Apr 12 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
May 29 Javascript
详解Angular Karma测试的持续集成实践
Nov 15 Javascript
用React Native制作一个简单的游戏引擎
May 27 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对象类型判断
2008/08/27 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
深入学习js瀑布流布局
2016/10/14 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
Python正则表达式使用经典实例
2016/06/21 Python
Python 内置函数complex详解
2016/10/23 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python图片的横坐标汉字实例
2019/12/04 Python
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
运动会广播稿80字
2014/01/23 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS