问题描述
我正在通过 UDP 与卡通信,使用我想要的数据发送消息并接收响应! 我在这两个参数的转换中遇到了一个小问题: Paremeters Argument
当我发送命令 0x22 来读取固件版本时,我得到了这个响应(索引 3,4,5),但鉴于我得到 38 和 33 的结果,它们不是 yymmdd 格式... 0x22 Reponse
当我发送命令 0x21 读取 UI 版本时 我得到了这个结果,如何将其转换为 48 位小端 0x21 Réponse
解决方法
最简单的方法是:
long serialNumber = byte1 + (256L * byte2) + (256L*256L * byte3) + ... + (256L*256L*256L*256L*256L * byte6)
请注意,肯定可以通过位移来实现:
long serialNumber = ((long)byte1) | ((long)byte2 << 8) | ((long)byte3 << 16) | ... | ((long)byte6 << 40)
两者都基于小端数在内存中的表示方式。