JavaScript 32位整型无符号操作
在 JavaScript 中,所有整数字变量默认都是有符号整数,这意味着什么呢?
有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数。
数值范围从-2^31 - 2^31-1
即 -2147483648 到 2147483647。
JavaScript 进行位操作时,是采用32位 有符号
整型,这意味着其转换的结果也是32位有符号整型。 有些时候,我们进行移位会出现意想不到的结果,以下是C语言
与 JS
的对比。
C语言
1 unsigned int a = 3774191835u; 2 unsigned int b = a >> 2; 3 /* b == 943547958 */JavaScript
1 var a = 3774191835; 2 var b = a >> 2; 3 /* b == -130193866 */
可以看到,JavaScript 进行位运算时,是采用的有符号整型,故我们得到了不一样的结果。 怎么解决呢?
我们可以把JavaScript 中的有符号数,转换成无符号数。只需要进行 >>>0
移位操作就好了。
最好不要使用
>>
,推荐使用>>>
因为最左边一位会被解析成符号位,当数字溢出时,会被解析成负数
。
转载于:https://www.cnblogs.com/owenyang/p/3462245.html
JavaScript 32位整型无符号操作相关推荐
- c语言整形符号位_C语言中整型无符号二进制数的表示问题
龙源期刊网 http://www.qikan.com.cn C 语言中整型无符号二进制数的表示问题 作者:马红旭 来源:<电子技术与软件工程> 2015 年第 20 期 摘 要 文章解决的 ...
- JS处理32位整型位运算
JS处理32位整型位运算 32位整数运算 首先要清楚,在JS中无论是整数还是小数都是按照64位的浮点数形式存储,而整数运算会自动转化为32位有符号整数. 有符号整数使用 31 位表示整数的数值,用第 ...
- IEEE754:将单精度浮点数的IEEE754格式转换成32位整型
ieee754,要求如下, 定义函数 int my_int_float() 从键盘输入一个单精度浮点数的字符串,然后自己解析该字符串,并用位操作把对应的值按754格式保存到4字节里,最后返回该四字节对 ...
- 【JavaScript】JS处理32位整型位运算
由上一篇leetcode题目(反转整数)中所涉及到的js整型范围,针对js如何处理32位整数运算原理以作扩展: 1.32位整数运算 首先要清楚,在JS中无论是整数还是小数都是按照64位的浮点数形式存储 ...
- mysql整型无符号 大小_解决mysql无符号整型自减运算时溢出的问题
溢出通常是指的数字类型的一个溢出问题了,对于这个问题小编整理了一篇关于解决mysql无符号整型自减运算时溢出的问题的教程,希望对各位同学会有所帮助. 在mysql中给一个无符号整型字段做自减运算时,如 ...
- 关于C++中有符号整型和无符号整型的转换方法
首先举个c++代码,如下: #include <iostream> using namespace std;/* * 这个程序演示了有符号整数和无符号整数之间的差别 */ int main ...
- MongoDB中关于64位整型存储解决方案
为什么80%的码农都做不了架构师?>>> 社区内一哥们@smcboy 提出关于php中操作MongoDB存储整数问题,找到点资料花点时间翻译过来,是个很好的学习方式.@红薯 那 ...
- 【转】C/C++的64位整型 不同编译器间的比较
/为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int ...
- C/C++的64位整型 zz
//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int TS ...
最新文章
- pandas使用set_table_attributes函数、display_html函数等在jupyter notebook中并排显示两个dataframe的内容(side by side)
- Kickstart的配置文件anaconda-ks.cfg解析
- 聊聊scalecube-cluster的GossipProtocol
- 团队冲刺(二)个人工作总结9
- Innodb存储引擎的特性(1).
- rust矿洞绳子怎么爬下_为何一根绳子可以凭空升到天上?印度通天绳究竟是什么原理?...
- 阿里云开源EasyTransfer:业界首个面向NLP场景深度迁移学习框架
- Portal-Basic Java Web 应用开发框架:应用篇(十一) —— 整合 Spring
- Weblogic Session复制策略与方式
- MFC小笔记:TabCtrl父子窗口传递消息
- FAR,NEAR区别
- linux下如何添加一个用户并且让用户获得root权限
- 锁屏界面提示某些设置已隐藏_OPPO忘记锁屏密码怎么办?教你一招轻松解开!...
- eclipse java 报错信息_解决Eclipse启动时报Initializing Java Tooling异常信息
- vscode生成vue模板快捷键_VSCode 初次写vue项目并一键生成.vue模版
- 频率单位Hz、MHz、GHz、THz、PHz、EHz换算关系
- Speed Gear(变速精灵XP) V6.0 - 免费版,破解版,绿色版
- 【翻译】steam离线时通过局域网游玩L4D2(求生之路2)
- 学术论文的英文文献,国内外有哪些网站可以找得到?
- Python小数整数输出