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 相关文章推荐
匹配任意字符的正则表达式写法
Apr 29 Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 Javascript
IE下双击checkbox反应延迟问题的解决方法
Mar 27 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
Apr 23 Javascript
jQuery实现的多选框多级联动插件
May 02 Javascript
javascript实现连续赋值
Aug 10 Javascript
js中判断变量类型函数typeof的用法总结
Aug 09 Javascript
D3.js实现直方图的方法详解
Sep 25 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
详解关于html,css,js三者的加载顺序问题
Apr 10 Javascript
js实现简单的无缝轮播效果
Sep 05 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写的serv-u的web申请账号的程序
2006/10/09 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
cakephp常见知识点汇总
2017/02/24 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
javascript中this用法实例详解
2017/04/06 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
Aosom西班牙:家具在线商店
2020/06/11 全球购物
好邻里事迹材料
2014/01/16 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
嘉宾邀请函
2015/01/31 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
班级联欢会主持词
2015/07/03 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python