ES7 之二进制链式操作符(&、|、^、~)详解

阅读时长 3 分钟读完

在 ES6 中,我们已经可以使用二进制操作符(&、|、^、<del>)进行位运算,但这些运算符有一个局限性,就是只能对数字类型进行操作。而 ES7 提供了一种新的运算符,即二进制链式操作符(&、|、^、</del>),可以更好地支持大型二进制数据操作,例如像视频编码和解码等。

二进制操作符的基础概念

在介绍二进制链式操作符之前,我们先来了解一下二进制操作符的基本概念。

二进制与十进制互相转换

在计算机中,所有的数据都是以二进制的形式存储的。与十进制不同,二进制只有两个数码:0 和 1。

将一个十进制数转换成二进制数,可以通过除以 2 取余数的方法来实现。例如,将十进制数 11 转换成二进制数,过程如下:

  • 11 ÷ 2 = 5 ... 1
  • 5 ÷ 2 = 2 ... 1
  • 2 ÷ 2 = 1 ... 0
  • 1 ÷ 2 = 0 ... 1

所以,11 的二进制形式为 1011。

将一个二进制数转换成十进制数,可以通过将二进制中的每一位按照权重相加的方法来实现。例如,将二进制数 1011 转换成十进制数,过程如下:

  • 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 1 x 2^0 = 8 + 0 + 2 + 1 = 11

二进制操作符

二进制操作符是用来操作二进制数的特殊运算符。在 JavaScript 中,二进制操作符有以下几种:

  • 按位与(&):返回两个数都是 1 的位。
  • 按位或(|):返回两个数中有一个是 1 的位。
  • 按位异或(^):返回两个数不相同的位。
  • 按位非(~):返回数值的反码,即把所有的 0 换成 1,1 换成 0。

ES7 新增的二进制链式操作符

ES7 新增的二进制链式操作符(&、|、^)允许这些方法链式应用,并且允许不同于数字的数据类型应用它们。

语法

二进制链式操作符的语法如下:

其中:

  • x 和 y 可以是任何数据类型。
  • 以上三个操作符返回的结果类型与 x 类型相同。

示例

下面我们来看一些二进制链式操作符的示例。

对数字类型进行二进制操作

对字符串类型进行二进制操作

-- -------------------- ---- -------
--- ---- - -------
--- ---- - -------
--- ------ - --

--- ---- - - -- - - ------------ ---- -
  ------ -- ------------------- - -------------------------------
-

------------------- -- ------------------------

对数组类型进行二进制操作

总结

二进制链式操作符是 ES7 新增的一种运算符,允许进行不同于数字类型的二进制数据操作,例如字符串和数组。本文中,我们介绍了二进制与十进制互相转换的基本方法,并且给出了一些二进制链式操作符的使用示例。在开发中,我们可以根据实际需求,利用这些操作符来进行更加高效、便捷的二进制数据操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651ce29795b1f8cacd464410

纠错
反馈