返回

利用位运算符打开JS的世界

前端

JavaScript 中的按位运算符们

在计算机科学中,按位运算符用于对二进制数执行按位操作。二进制数是由 0 和 1 组成的数字系统,是计算机和数字电路的基础。

JavaScript 中的按位运算符有 6 个:

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

这些运算符可以用于执行各种操作,包括:

  • 检查二进制数中特定位的值
  • 设置或清除二进制数中特定位的值
  • 将二进制数向左或向右移动

按位运算符在许多不同的应用中都很有用,包括:

  • 图形学
  • 加密
  • 数据压缩
  • 协议实现

二进制数

二进制数是由 0 和 1 组成的数字系统。它是计算机和数字电路的基础,因为它们很容易由电子电路实现。

二进制数的每个位都代表一个数字,从右到左,依次为 2^0、2^1、2^2、...、2^n。例如,二进制数 1011 表示 (1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0) = 11。

JavaScript 中的位运算符

JavaScript 中的按位运算符用于对二进制数执行按位操作。这些运算符有 6 个:

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

这些运算符可以用于执行各种操作,包括:

  • 检查二进制数中特定位的值
  • 设置或清除二进制数中特定位的值
  • 将二进制数向左或向右移动

按位与

按位与运算符 & 用于对两个二进制数执行按位与操作。按位与运算符的运算结果为两个二进制数中对应的位都为 1 的位。例如,1011 & 0110 = 0010。

按位或

按位或运算符 | 用于对两个二进制数执行按位或操作。按位或运算符的运算结果为两个二进制数中对应的位有一个为 1 的位。例如,1011 | 0110 = 1111。

按位异或

按位异或运算符 ^ 用于对两个二进制数执行按位异或操作。按位异或运算符的运算结果为两个二进制数中对应的位有一个为 1 的位,但不是两个都为 1 的位。例如,1011 ^ 0110 = 1101。

左移

左移运算符 << 用于将二进制数向左移动指定数量的位。左移运算符的运算结果为二进制数的副本,其中最高有效位被丢弃,最低有效位被填充为 0。例如,1011 << 2 = 11100。

右移

右移运算符 >> 用于将二进制数向右移动指定数量的位。右移运算符的运算结果为二进制数的副本,其中最低有效位被丢弃,最高有效位被填充为 0。例如,1011 >> 2 = 0010。

无符号右移

无符号右移运算符 >>> 用于将二进制数向右移动指定数量的位,而不会填充最高有效位。无符号右移运算符的运算结果为二进制数的副本,其中最低有效位被丢弃,最高有效位被填充为 0。例如,1011 >>> 2 = 0010。

按位运算符的应用

按位运算符在许多不同的应用中都很有用,包括:

  • 图形学:按位运算符可以用于混合颜色、创建阴影和其他图形效果。
  • 加密:按位运算符可以用于对数据进行加密和解密。
  • 数据压缩:按位运算符可以用于压缩数据,以减少其大小。
  • 协议实现:按位运算符可以用于实现网络协议,例如 TCP/IP。

按位运算符是一种强大的工具,可以用于执行各种各样的任务。如果您想学习如何使用按位运算符,有很多资源可以帮助您入门。