Javascript 根据文档进行原始数据提取

Javascript 根据文档进行原始数据提取,javascript,parsing,extraction,Javascript,Parsing,Extraction,我必须从原始十六进制字符串中提取数据,如下所示:800200217fff8000bf5e0000 如您所见,我的数据有12个字节,因此根据这一点,我在web上寻找解决方案,我找到了这个解决方案: var s = "800200217fff8000bf5e0000" var result = []; for(var i = 0; i < s.length; i+=2) { result.push(parseInt(s.substring(i, i + 2), 16)); } re

我必须从原始十六进制字符串中提取数据,如下所示:800200217fff8000bf5e0000 如您所见,我的数据有12个字节,因此根据这一点,我在web上寻找解决方案,我找到了这个解决方案:

var s = "800200217fff8000bf5e0000"
var result = [];

for(var i = 0; i < s.length; i+=2)
{
    result.push(parseInt(s.substring(i, i + 2), 16));
}

result = Uint8Array.from(result)
var s=“800200217fff8000bf5e0000”
var结果=[];
对于(变量i=0;i
现在,我有:

800200217fff8000bf5e0000=>128,2,0,33127255128,0191,94,0,0

这是一个很好的观点。但现在,我在数据提取方面遇到了麻烦。根据发送帧的设备的文档,我在第一个字节的描述中读到:

位|名称|描述

7 |停车位状态| 0->空,1->已占用

6 |电池状态| 0->良好水平,1->不良水平

5-4 |保留|不考虑

3-2-1-0 |帧类型| 0-信息帧,1-保持活动帧等

我的第一个字节有128个,这很好,但我真的认为这对我没有多大帮助。我有一个解决方案,比如除以128、64、32等等,如果位是1或0,我会找到每个值,但我认为这不是一个好的解决方案

您知道一种很好的数据解析方法吗?

使用:


要获取第7位,请使用掩码
0x00000001
(1),要获取第6位,请使用
0x00000010
(2)依此类推。

如果设置了位n,则提示(值&2^n)返回非零,例如
var bit7set=(值&128)>0看啊,是的,太好了!谢谢!
var parking_slot_status = result[0] & 1;
var battery_state = result[0] & 2;