&:按位与、|:按位或、^:按位异或、~:按位取反

主要针对于整数运算(转换成二进制)。

&:按位与:对应位都是1 则返回 1;只要有一个不是1 则返回 0;
|:按位或:对应位只要有一个是1 就返回1;都不是1则返回0;
^:按位异或:对应位必须一个是1一个是0才返回1;否则返回0;
~:按位取反:对应位1变0,0变1;(对于10进制-->巧记:当前数值 + 1 取反。)

##  &
00000001 & 00000011 = 00000001

## |
00000001 | 00000011 = 00000011

## ^
00000001 ^ 00000010 = 00000011
00000001 ^ 00000011 = 00000010

##~   :对于10进制(加1取反)
~2 = -3
~-3 = 2

一、使用 & 判断奇偶性

// 因为:奇数 & 1 = 1; 偶数 & 1 = 0; 所以:
function fun(param) {
  if(param & 1) 
    return alert('奇数');
  alert('偶数');
}

二.左移位运算符

把整数a的各二进位全部左移n位,高位丢弃,低位补0。左移n位其实就是乘以2的n次方
由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性

2<<1; //相当于 2 *= 2 // 4

2<<2; //相当于 2 *= 2^2; // 8

应用场景
快速计算一个数乘以2的n次方

三.右移位运算符

把整数a的各二进位全部右移n位,保持符号位不变。右移n位其实就是除以2的n次方
为正数时, 符号位为0,最高位补0
为负数时,符号位为1,最高位是补0或是补1
取决于编译系统的规定

2>>1; //相当于 2 /= 2 // 1

4>>2; //相当于 4 /= 2^2 // 1

应用场景

  • 1、快速计算一个数除以2的n次方;
  • 2、从数组中随机取某一个元素
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
console.log(array[(Math.random() * array.length) >> 0]);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • & 按位与| 按位或^ 按位异或 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位...
    rockyMJ阅读 4,089评论 1 0
  • 一、按位与 & 1.概念:参加运算的两个对象,按二进制位进行“与”运算,负数按补码形式参加按位与运算。2.规则 3...
    迷恋代码阅读 4,933评论 0 0
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 按位与运算符(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则:0&0=0;0&1=0;1&0=0;...
    尼尔君阅读 2,154评论 0 1
  • 向来情深,奈何缘浅。爱情是伟大的,可生活却是眼前的。从古至今,女人或女孩总是更容易也更愿意相信爱情。就像何玉玲,哪...
    二姑娘是我阅读 2,086评论 0 0