位运算

124 阅读1分钟

位运算是指直接对二进制数进行操作的运算。JavaScript 支持以下位运算符:

  1. 按位与运算符(&)

    • 两个位都为 1 时,结果才为 1,否则为 0。
  2. 按位或运算符(|)

    • 两个位都为 0 时,结果才为 0,否则为 1。
  3. 按位异或运算符(^)

    • 两个位相同为 0,不同为 1。
  4. 按位非运算符(~)

    • 反转操作数的所有位,即 0 变成 1,1 变成 0。
  5. 左移位运算符(<<)

    • 把操作数的所有位向左移动指定的位数,右边用 0 填充。
  6. 有符号右移位运算符(>>)

    • 把操作数的所有位向右移动指定的位数,左边用原来的符号位填充。如果是正数,就在左边插入 0;如果是负数,就在左边插入 1。
  7. 无符号右移位运算符(>>>)

    • 把操作数的所有位向右移动指定的位数,左边用 0 填充。

以下是一些例子:

const a = 0b1010; // 二进制数 1010,十进制数为 10 
const b = 0b1100; // 二进制数 1100,十进制数为 12 
console.log(a & b); // 二进制数 1000,十进制数为 8 
console.log(a | b); // 二进制数 1110,十进制数为 14 
console.log(a ^ b); // 二进制数 0110,十进制数为 6 
console.log(~a); // 二进制数 0101,十进制数为 -11 
console.log(a << 2); // 二进制数 101000,十进制数为 40 
console.log(b >> 1); // 二进制数 0110,十进制数为 6 
console.log(b >>> 1);// 二进制数 0110,十进制数为 6