返回

JavaScript 位运算指南

见解分享

JavaScript位运算指南

JavaScript 位运算符允许您对二进制数字进行位级操作,这可以用于许多不同的目的,包括位掩码、位设置和位清除。

JavaScript 提供了以下位运算符:

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

位运算符以二进制数字作为输入,并以另一个二进制数字作为输出。例如,以下代码将两个数字按位与:

let a = 5; // 101
let b = 3; // 011
let c = a & b; // 001

在上面的示例中,ab 的二进制表示分别为 101011。当我们执行按位与操作时,我们会逐位比较 ab 的二进制数字,如果两个数字在相同的位置都为 1,则结果为 1,否则结果为 0。在上面的示例中,ab 在第一个和第三个位置都为 1,因此结果为 001

位运算符可以用于许多不同的目的,包括:

  • 位掩码:位掩码可以用来清除数字中的特定位。例如,以下代码将 a 中的最低位清除:
let a = 5; // 101
let mask = 4; // 100
let result = a & mask; // 000

在上面的示例中,mask 的二进制表示为 100,这意味着它将清除 a 中的最低位。当我们执行按位与操作时,我们会逐位比较 amask 的二进制数字,如果两个数字在相同的位置都为 1,则结果为 1,否则结果为 0。在上面的示例中,amask 在前两个位置都为 1,但 a 在最低位为 1mask 在最低位为 0,因此结果为 000

  • 位设置:位设置可以用来设置数字中的特定位。例如,以下代码将 a 中的最低位设置为 1
let a = 5; // 101
let mask = 1; // 001
let result = a | mask; // 111

在上面的示例中,mask 的二进制表示为 001,这意味着它将设置 a 中的最低位。当我们执行按位或操作时,我们会逐位比较 amask 的二进制数字,如果两个数字在相同的位置都为 1,则结果为 1,否则结果为 0。在上面的示例中,amask 在前两个位置都为 1,并且 a 在最低位为 1mask 在最低位也为 1,因此结果为 111

  • 位清除:位清除可以用来清除数字中的特定位。例如,以下代码将 a 中的最低位清除:
let a = 5; // 101
let mask = ~1; // 110
let result = a & mask; // 110

在上面的示例中,mask 的二进制表示为 110,这意味着它将清除 a 中的最低位。当我们执行按位与操作时,我们会逐位比较 amask 的二进制数字,如果两个数字在相同的位置都为 1,则结果为 1,否则结果为 0。在上面的示例中,amask 在前两个位置都为 1,但 a 在最低位为 1mask 在最低位为 0,因此结果为 110

希望这篇指南对您有所帮助。如果您有任何其他问题,请随时与我们联系。