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 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记 概述
Oct 11 Javascript
js对文章内容进行分页示例代码
Mar 05 Javascript
js实现索引图片切换效果
Nov 21 Javascript
用原生js做单页应用
Jan 17 Javascript
详解vue数据渲染出现闪烁问题
Jun 29 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
Dec 04 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
vue自定义指令用法经典实例小结
Mar 16 Javascript
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
Js代码中的span拼接问题解决
Nov 22 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
Mar 23 Javascript
JavaScript接口实现方法实例分析
May 16 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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
php gzip压缩输出的实现方法
2013/04/27 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
Python NumPy库安装使用笔记
2015/05/18 Python
python numpy 按行归一化的实例
2019/01/21 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
自我评价优秀范文分享
2013/11/30 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
春节联欢会主持词
2014/03/24 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
2014年商场工作总结
2014/11/22 职场文书
优秀员工事迹材料
2014/12/20 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
2015年超市工作总结
2015/04/09 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript