Javascript 处理二机制 bit 位

发布时间: 2021-07-30 13:15:17 作者: 大象笔记

返回的数据是一个字节,即 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

参考

我是一名山东烟台的开发者,联系作者