JavaScript 位操作符

1. 介绍

在JavaScript中,位操作符是一组用于对数值进行位运算的操作符。位操作符可以直接操作二进制数的各个位,对于处理位数据非常有用。本文将介绍JavaScript中常用的位操作符,并通过示例代码来说明其使用方法。

2. 位操作符列表

JavaScript提供了以下位操作符:

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

3. 按位与(&)

按位与操作符用于对两个操作数的每个对应位执行逻辑与运算,并返回结果。其语法为a & b,其中a和b为要操作的数值。

示例代码:

let a = 5; // 二进制表示为 0101
let b = 3; // 二进制表示为 0011
let result = a & b; // 结果为 0001,即十进制的1
console.log(result); // 输出1

4. 按位或(|)

按位或操作符用于对两个操作数的每个对应位执行逻辑或运算,并返回结果。其语法为a | b

示例代码:

let a = 5; // 二进制表示为 0101
let b = 3; // 二进制表示为 0011
let result = a | b; // 结果为 0111,即十进制的7
console.log(result); // 输出7

5. 按位异或(^)

按位异或操作符用于对两个操作数的每个对应位执行逻辑异或运算,并返回结果。其语法为a ^ b

示例代码:

let a = 5; // 二进制表示为 0101
let b = 3; // 二进制表示为 0011
let result = a ^ b; // 结果为 0110,即十进制的6
console.log(result); // 输出6

6. 按位非(~)

按位非操作符用于对操作数的每个位执行逻辑非运算,并返回结果。其语法为~a

示例代码:

let a = 5; // 二进制表示为 0101
let result = ~a; // 结果为 1010(补码形式),即十进制的-6
console.log(result); // 输出-6

7. 左移(<<)

左移操作符将第一个操作数的各个位向左移动指定的位数,并返回结果。其语法为a << b,其中a为要进行位移操作的数值,b为要移动的位数。

示例代码:

let a = 5; // 二进制表示为 0101
let b = 2;
let result = a << b; // 结果为 010100,即十进制的20
console.log(result); // 输出20

8. 有符号右移(>>)

有符号右移操作符将第一个操作数的各个位向右移动指定的位数,并返回结果。其语法为a >> b,其中a为要进行位移操作的数值,b为要移动的位数。

示例代码:

let a = 5; // 二进制表示为 0101
let b = 2;
let result = a >> b; // 结果为 0001,即十进制的1
console.log(result); // 输出1

9. 无符号右移(>>>)

无符号右移操作符将第一个操作数的各个位向右移动指定的位数,并返回结果。其语法为a >>> b,其中a为要进行位移操作的数值,b为要移动的位数。

示例代码:

let a = -5; // 二进制表示为 11111111111111111111111111111011(补码形式)
let b = 2;
let result = a >>> b; // 结果为 00111111111111111111111111111110,即十进制的1073741822
console.log(result); // 输出1073741822
``