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 相关文章推荐
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
Jan 09 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
Dec 24 Javascript
基于Javascript实现倒计时功能
Feb 22 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
Mar 21 Javascript
前端jquery部分很精彩
May 03 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
Feb 12 Javascript
JavaScript实现鼠标经过表格某行时此行变色
Nov 20 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
Python列表计数及插入实例
2014/12/17 Python
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
运动会广播稿30字
2014/01/21 职场文书
互联网创业计划书的书写步骤
2014/01/28 职场文书
婚礼主持词开场白
2014/03/13 职场文书
《恐龙》教学反思
2014/04/27 职场文书
卫生系统先进事迹
2014/05/13 职场文书
投标邀请书范本
2015/02/02 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技