首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据文档提取原始数据

根据文档提取原始数据
EN

Stack Overflow用户
提问于 2017-04-21 13:19:02
回答 1查看 38关注 0票数 0

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

代码语言:javascript
复制
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)

所以现在,我有:

800200217fff8000bf5e0000 => 128,2,0,33,127,257,128,191,94,0

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

位/名\\>描述

停车位状态0 ->空,1 ->被占用

6倍电池状态0 ->良好水平1 ->坏电平

保留的5-4 \x{e76f}不考虑

. frame =‘Frame 5’>型\ 0-信息帧,1-保持活帧等.

所以,我的第一个字节有128个字节,这很好,但我并不认为它对我有很大帮助。我有一个解决方案,比如除以128,64,32等,如果位数是1或0的话,每个都可以找到,但我不认为这是一个好的解决方案。

您知道如何很好地执行我的数据解析吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-21 13:30:54

使用位运算符

代码语言:javascript
复制
var parking_slot_status = result[0] & 1;
var battery_state = result[0] & 2;

要获得第7位,请使用掩码0x00000001 (1),第6位使用0x00000010 (2)等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43543819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档