Javascript 处理二机制 bit 位

更新日期: 2021-07-30 阅读次数: 202 字数: 227 分类: Javascript

返回的数据是一个字节,即 8 bit 位,每一个 bit 代表一个设备状态的开启与否。 即 8 个不同设备的开启状态。

如何用 Javascript 来解析二机制状态位呢?

开关作用

可以通过 dataView.getUint8(N) 将返回的一个字节数据 array buffer 转换成整数,例如下面的 flags。 然后通过开关位比对来判断其状态:

var flags = 5; // 二进制的0101

if (flags & 4) {
  // ...
}
// 0101 & 0100 => 0100 => true

注意,这里是单个与符号,两个就是逻辑与符号了。

左移操作

简洁直观的开关位表示方法,可以利用左移操作来实现。

左移运算符(<<)表示将一个数的二进制值向左移动指定的位数,尾部补0,即乘以2的指定次方。

1 << 2
4

1 << 3
8

1 << 4
16

1 << 5
32

参考

  • 开关作用 https://albe-js.readthedocs.io/zh_CN/latest/operators/bit/

爱评论不评论