📜  JavaScript 位运算符(1)

📅  最后修改于: 2023-12-03 15:31:41.073000             🧑  作者: Mango

JavaScript 位运算符

在 JavaScript 中,位运算符是对数字的二进制表示进行操作的运算符。这些运算符将数字转换为二进制表示,并对它们的比特位进行操作。以下是 JavaScript 支持的位运算符列表:

  1. 按位与(&)
let a = 5; // 二进制表示为 101
let b = 3; // 二进制表示为 011
let result = a & b; // 二进制为 001,即十进制为 1

按位与运算符对两个操作数的每个比特位进行与操作,只有两个比特位都是 1 时结果才为 1,否则为 0。

  1. 按位或(|)
let a = 5; // 二进制表示为 101
let b = 3; // 二进制表示为 011
let result = a | b; // 二进制为 111,即十进制为 7

按位或运算符对于两个操作数的每个比特位进行或操作,只有两个比特位都是 0 时,结果才是 0,否则为 1。

  1. 按位异或(^)
let a = 5; // 二进制表示为 101
let b = 3; // 二进制表示为 011
let result = a ^ b; // 二进制为 110,即十进制为 6

按位异或运算符对于两个操作数的每个比特位进行异或操作,只有两个比特位不相同时结果才为 1,否则为 0。

  1. 按位非(~)
let a = 5; // 二进制表示为 000...00101
let result = ~a; // 二进制为 111...11010,即十进制为 -6 

按位非运算符对于操作数的每个比特位进行取反操作,即 0 变为 1,1 变为 0。同时操作数的符号位也会被取反,因此结果为操作数的按位非值再减去 1。

  1. 左移(<<)
let a = 5; // 二进制表示为 000...00101
let result = a << 2; // 二进制为 000...10100,即十进制为 20

左移运算符使操作数的所有比特位向左移动指定数量的位数。左边移出去的比特位将被丢弃,右边空出的比特位被填充为 0。

  1. 右移(>>)
let a = 5; // 二进制表示为 000...00101
let result = a >> 2; // 二进制为 000...00001,即十进制为 1

右移运算符使操作数的所有比特位向右移动指定数量的位数。右移运算符的行为取决于操作数的符号位:如果操作数是正数,则左侧空出的比特位被填充为 0;如果操作数是负数,则左侧空出的比特位被填充为 1。

  1. 无符号右移(>>>)
let a = -5; // 二进制表示为 111...11011
let result = a >>> 2; // 二进制为 001...11101,即十进制为 1073741821

无符号右移运算符与右移运算符类似,但左侧填充的比特位始终为 0。

位运算符在 JavaScript 中的应用领域包括网络、加密、图形、游戏等等。