JavaScript基础教程二进制位运算

JavaScript中的位运算是针对二进制数据提供的运算与操作。在JavaScript标准中规定了二进制位运算时其操作数长度为32位,其最高位为符号位,因此能够表示的有效数字位数为31位。本节主要介绍JavaScript中的二进制位的运算。


位运算基本操作符及说明

与其他程序设计语言类似,JavaScript所提供的二进制位运算主要包括AND(按位与运算)、OR(按位或运算)、XOR(按位异或运算)及左移、右移等相关操作。各类型操作描述如下表所示:

JavaScript二进制位操作符

位运算基本操作如描述如上表所示,此处需要注意问题是不要将二进制位运算与逻辑运算的And(与)、OR(或)、NOT(非)概念记混。由于JavaScript使用32位进行数值的二进制计算,因此在进行位操作时首先需要将10进制数值转换为二进制,然后按照二进制位操作要求进行位的操作。与运算、或运算、异或运算较为简单,只需要明确概念即可完成运算,我们将对非运算、左移、右移三个运算进行说明。

1、非运算

从定义可知非运算主要通过反转操作数完成计算,程序在具体执行非运算时按照以下步骤执行,以正数9为例对其进行非运算过程进行说明。

① 10进制转为32位二进制原码,符号位为0(正数)。如下表所示:

原码

② 将原码安位进行取反,结果如下:

按位取反获取反码

③ 此时我们得到是在内存中保存的形式(补码),需要将其转化为原码形式。从符号位可知反码为负数,因此需要按照补码转原码规则除符号位之外取反加1可获取对应原码。

计算结果

对于二进制非运算我们说明如上所示,因此9的非运算结果为-10,同理可以计算一个负数的非运算结果。作为负数时首先需要将其原码转为内存表示的补码,即除符号位之外其他位取反加一。在进行按位非运算,并将计算结果转换为原码。其过程描述如下图所示。

负数的按位与运算

计算结果可知最高位为1,即正数。正数的补码与原码相同,顾可知最终计算结果为8。即~(-9)=8;

2、左移、右移问题

按照位的左移与右移只需要注意按照规则要求左右移动指定位数,左移需要在右侧补充0,以保证位数,右移需要舍弃左侧对应的位数等。举例描述9<<2位操作过程示意如下(为方便演示我们以8位为例进行说明):

左移操作

左移操作描述如上图所示,可知9<<2 的结果为36。


以上给出JavaScript程序设计语言中二进制位操作,并重点对按位取反操作及左移、右移操作进行了说明。本头条号长期关注编程资讯分享;编程课程、素材、代码分享及编程培训。如果您对以上方面有兴趣或代码错误、建议与意见,可以联系作者,共同探讨。更多程序设计相关教程及实例分享,期待大家关注与阅读!系列教程链接如下:

JavaScript基础教程(三)64位浮点数加法运算

JavaScript基础教程(二)变量、常量与运算符

JavaScript基础教程(一)课程说明

左移和右移的运算规则_一文读懂JavaScript位的与、或、异或、取反及左移右移操作...相关推荐

  1. 前端面试必会 | 一文读懂 JavaScript 中的 this 关键字

    this 是一个令无数 JavaScript 编程者又爱又恨的知识点.它的重要性毋庸置疑,然而真正想掌握它却并非易事.希望本文可以帮助大家理解 this. JavaScript 中的 this Jav ...

  2. 带你一文读懂Javascript中ES6的Symbol

    带你一文读懂Javascript中ES6的Symbol 前言 基础类型 Symbol Symbol.for 与 Symbol.keyFor Symbol.iterator Symbol.search ...

  3. psm倾向得分匹配法举例_一文读懂倾向得分匹配法(PSM)举例及stata实现(一)

    原标题:一文读懂倾向得分匹配法(PSM)举例及stata实现(一) 一.倾向匹配得分应用之培训对工资的效应 政策背景:国家支持工作示范项目( National Supported Work,NSW ) ...

  4. java中date类型如何赋值_一文读懂java中的Reference和引用类型

    简介 java中有值类型也有引用类型,引用类型一般是针对于java中对象来说的,今天介绍一下java中的引用类型.java为引用类型专门定义了一个类叫做Reference.Reference是跟jav ...

  5. python输入什么就输出什么_一文读懂Python的输入和输出

    本文介绍了Python的输入和输出,既然是Python代码,那么就一定有输出量,那么,Python是如何输出的呢? 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'h ...

  6. gps导航原理与应用_一文读懂角速度传感器(陀螺仪)的应用场景

    前文我们大致了解陀螺仪的来历,原理和种类,那么,它与我们的日常生活有怎样的关系呢? 陀螺仪器最早是用于航海导航,但随着科学技术的发展,它在航空和航天事业中也得到广泛的应用.陀螺仪器不仅可以作为指示仪表 ...

  7. hdfs读写流程_一文读懂HDFS分布式存储框架分析

    一文读懂HDFS分布式存储框架分析 HDFS是一套基于区块链技术的个人的数据存储系统,利用无处不在的私人PC存储空间及便捷的网络为个人提供数据加密存储服务,将闲置的存储空间利用起来,服务于正处于爆发期 ...

  8. mysql 默认事务隔离级别_一文读懂MySQL的事务隔离级别及MVCC机制

    回顾前文: <一文学会MySQL的explain工具> <一文读懂MySQL的索引结构及查询优化> (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论 ...

  9. stata 求输出相关系数矩阵命令_一文读懂结果输出命令大全(上)

    目录 描述统计量 help tabstat   //Stata 官方命令 描述统计量组间均值差异检验 help ttest help ttable2 help estout 相关分析命令 help p ...

最新文章

  1. 美多商城之支付(评价订单商品)
  2. 如何制定一份永远完不成的年度计划?
  3. 【c语言】蓝桥杯算法提高 时间转换
  4. springcloud hystrix实战(二)
  5. http协议中的keeplive是做什么的?它的适应场景是什么?
  6. 林軒田《机器学习基石》课程总结
  7. 印象笔记:解决Chrome插件安装时程序包无效:CRX_HEADER_INVALID
  8. 通过Log4j生成CSV格式日志时自动插入表头处理方法
  9. Apache,mysql,PHP,lanp环境
  10. 计算机cpu在哪,cpu什么意思啊_电脑cpu哪里看
  11. 【OS学习笔记】二 汇编语言和汇编软件
  12. php 替换表情符号,php怎么实现正则替换特殊符号
  13. 用java打暴雪星际争霸(2)——运行测试机器人
  14. 每周分享第 31 期
  15. 如何使用Win10搭建我的世界Minecraft服务器
  16. 代码测试,调试与优化小结
  17. 图形使用计算机绘制的画面,本章练习优质课教学设计
  18. 高阶篇:4.3)FTA故障树分析法-DFMEA的另外一张脸
  19. nextcloud云搭建及教程转接
  20. 480+免费icon sets帮助我们在Flex中创建自己的漂亮的Skin和Theme

热门文章

  1. 华人团队再获ACL最高奖,这次来自字节跳动的NLP基础研究
  2. 昇腾万里·让AI无所不及!DevRun开发者沙龙在武汉成功举办
  3. 如何用 Python 写 Excel 中 Vlookup 函数?
  4. 百度CTO王海峰出席科协年会重头论坛,展现智能云产业智能化硕果
  5. 华为否认启动“塔山计划”;中金:苹果中国区下架微信概率较小;Linux Lab发布v0.5 rc3| 极客头条...
  6. YGC 问题排查,又涨姿势了!
  7. 编码的未来是“无代码”
  8. 对标 PyTorch,清华团队推出自研 AI 框架“计图” | AI 技术生态论
  9. Python 爬取揭秘,你的考研调剂对手就有谁?
  10. 开发小程序遇协同、平台兼容难题,该如何破局?