JavaScript 位运算符

🌙
手机阅读
本文目录结构

位运算符

(仅作了解,可以忽略不看,项目中很少用到);

基础知识

  • 类型;
    • 有符号;
      • 数值位,前31位;
      • 符号位,第32位;
        • 0,整数
        • 1,负数
    • 无符号;
      • 只能是正数
      • 第32位表示数值
      • 数值范围可以加大
  • 数值范围;-2147483648~2147483647
  • 存储方式
    • 正数
      • 纯2进制存储
      • 31位表示数值
      • 数值范围可以加大
    • 负数
      • 2进制补码存储
      • 补码的计算步骤
        • 1、确定该数字的非负版本的二进制表示
        • 2、求得二进制反码,既要把0替换为1,把1替换为0;
        • 3、在二进制反码上加1;
  • 当作0来处理的特殊值
    • NaN
    • Infinity

逻辑位运算

  • 返回值为1,
    • 按位非~ 0
    • 按位与& 对应值全为1
    • 按位或| 任何一位是1
    • 按位异或^ 既不同时为0,也不同时为1;
  • 返回值为0;
    • 按位非~ 1
    • 按位与& 任何一位是0
    • 按位或| 对应位全0;
    • 按位异或^ 对应位全0或全1

位移操作

  • 左移<<
    • 将数值的所有位左移指定的位数
    • 所有空位用0补充
    • 左移1位对其X2,左移2位对其X4;依次类推;
  • 有符号右移>>
    • 将数值的所有位右移指定的位数
    • 一处的位被舍弃
    • 保留符号位
    • 右移一位对齐除2,右移两位对齐除4,依次类推
  • 无符号右移>>>
    • 正数,与有符号右移结果相同
    • 负数,会出现无限大的数值;
  • 复合赋值运算符:位操作符与等号结合,复合赋值不会有性能方面的提升;

按位操作符

  • & 按位与
  • | 按位或
  • ~ 按位非
  • ^ 按位异或
  • << 按位左移
  • >> 按位右移

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了