JS解析十六进制
需要用JS解析十六进制,协议文档如图所示
将小端数据转换。
供测试的模拟数据:0161000ee94100d72a00000500f6285c8fc2d55c40e17a14ae47e1e23f0000000000e2aa40cdcccccccccc04401f85eb51b89e72c03333333333f33240c3f51d4229dce84214aedf41d067e47f9fbdd8080000000000000100000000000070a740
求代码...
期望结果类似:
{"ID":4322501,"BatchNumber":11213,"TrackScore":4,"TrackAzimuth":127.980000,"TrackPitch":0.480000,"TrackDistance":1489.000000,"TrackSpeed":3.600000,"TrackSpeedDirection":23.240000,"TrackSignalToNoise":19.380000,"TrackLatitude":39.490002,"TrackLogitude":116.410004,"TrackHeight":7.500000,"TraceTimeStamp":637467844469060723,"TraceType":0,"TargetType":0,"TargetThreatLevel":2,"WarningTime":230.500000}
更新:有结果了
这里涉及到计算机基础知识,字节次序等
1字节 = 8bit
一个16进制位=0.5个字节
https://www.cnblogs.com/zemli...
找了个类库
https://github.com/keichi/bin...
可以很容易的实现
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你这个可能不仅是16进制的问题,还涉及到编码规则问题,如果没有具体的编码规则(协议),给出的数据就不知道如何转换为你想的部分,因为单纯的16进制数据流都不能区分哪些是你的属性名,哪些是数据的。而且同样字节信息,数据格式不同,意义也是完全不同的。
你的那个协议列表中有19项(缺11),总数是95字节,提供的数据是194个字符,按16进制表示,最多是97个字节,这样存在数据信息和协议要求不对应的情况,你后来提供的数据是186个字符,也最多对应93个字节数据,总之,按你前面的协议是不能正确解析后面数据的。
当然,你提供的binary_parser库是可以用来解析数据。