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 相关文章推荐
DOM 脚本编程中的兄弟节点
Oct 31 Javascript
JS拖动技术 关于setCapture使用
Dec 09 Javascript
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
javascript类型转换使用方法
Feb 08 Javascript
jQuery插件formValidator实现表单验证
May 23 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
Jun 28 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
Jan 13 Javascript
require.js中的define函数详解
Jul 10 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 Javascript
介绍一下28个JS常用数组方法
May 06 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
文章推荐系统(三)
2006/10/09 PHP
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
joomla组件开发入门教程
2016/05/04 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
python正则实现计算器功能
2017/12/14 Python
浅谈python数据类型及类型转换
2017/12/18 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
Pycharm保存不能自动同步到远程服务器的解决方法
2019/06/27 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python flask框架端口失效解决方案
2020/06/04 Python
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
大学生志愿者活动总结
2014/06/27 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
学术会议通知范文
2015/04/15 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
初中思想品德教学反思
2016/02/24 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
JavaScript控制台的更多功能
2021/04/28 Javascript
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python