关于bcd码数据解析问题。?希望有知道的给指点一下。

appleznft0952 2017-12-04 01:42:24
序号 内容 字节数 备注
1 指令代码(0003H) 1
2 终端ID低16位 2
3 终端ID高16位 2
4 时间:年-月 2
5 时间:日-时 2
6 时间:分-秒 2
7 寄存器起始地址 2
8 寄存器数(N3) 1 N3=实际上传的寄存器数减一
9 寄存器值 2*(N3+1)
10 CRC校验 2
------ -以上为编码规则----------------------------------------------------------

下面是设备给我发来的数据编码:AA7200031500FFFF000000001032000203000088011A0E17000000

请问我如何解析这个编码得到上面对应的数据?给个思路。不胜感激!谢谢
...全文
246 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
序号 内容                           字节数                        备注 1 指令代码(0003H)           1   2 终端ID低16位                   2   3 终端ID高16位                   2   4 时间:年-月                           2   5 时间:日-时                           2   6 时间:分-秒                           2   7 寄存器起始地址                      2   8 寄存器数(N3)                   1                            N3=实际上传的寄存器数减一 9 寄存器值                           2*(N3+1)   10 CRC校验                           2   ------ -以上为编码规则---------------------------------------------------------- 下面是设备给我发来的数据编码:AA7200031500FFFF000000001032000203000088011A0E17000000 翻译后是这样的: 1 指令代码(0003H) 2 终端ID低16位 3 终端ID高16位 …………………… AA 72 00 03 15 00FFFF000000001032000203000088011A0E17000000 能看明白不?
kampoo 2017-12-04
  • 打赏
  • 举报
回复
如2017年12月4日 12点36分18秒 => 20 17 12 04 12 36 18,其十进制的数字序列是(32 23 18 4 18 54 24),FYI
引用 2 楼 kampoo 的回复:
标准的BCD码是保持10进制和16进制阅读一致,如 12 (10进制)的BCD码为 0x12(即10进制的18); 在实际中经常被误用为<100的10进制占用一个字节,即还是16进制表示,但每个字节表示2位10进制数字,如12(10进制)=> 0C(16进制),99(10进制)=> 0x63(16进制);>=100不允许。 年月日时分秒多用BCD码表示,从16进制字符串即可直接读出 日期时间,方便调试。
kampoo 2017-12-04
  • 打赏
  • 举报
回复
标准的BCD码是保持10进制和16进制阅读一致,如 12 (10进制)的BCD码为 0x12(即10进制的18); 在实际中经常被误用为<100的10进制占用一个字节,即还是16进制表示,但每个字节表示2位10进制数字,如12(10进制)=> 0C(16进制),99(10进制)=> 0x63(16进制);>=100不允许。 年月日时分秒多用BCD码表示,从16进制字符串即可直接读出 日期时间,方便调试。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧