十六进制编码和解码
Hex Encoding and Decoding
我在一些第 3 方应用程序中有两个模块(它没有任何文档,由于保密原因我不能透露应用程序名称)。一个模块只输出整数,其他模块只输出浮点数。
输出整数的模块具有非常简单的数据格式,因为它是数字的十六进制表示形式,以相反的字节顺序排列。所以,我能够成功解码它。但是在解码浮点数的十六进制表示时遇到问题。
下面的数据显示了十六进制的数据转储,后跟预期的转换值。我有一点关于它的表示的信息,即最后两个字节是某种 CRC,因此,它就像一个带有两个 CRC 字节的 8 字节数字。
我已经突出显示了需要转换的 8 个字节,它们的预期值如下:
数据集 1:02 B5 E6 7B 15 C8 0C 00 0A F9 = 999359.533
数据集 2:7C 4C 3A 00 00 00 00 00 B7 4C = 0.001
任何人都可以在这里提出建议,我也尝试过很多编码方案,包括 IEEE 格式。我没有任何其他相关信息可以分享(我知道解决这个问题将是一个成功的尝试技术)。
不确定这是否有帮助但是:
02 B5 E6 7B 15 C8 0C 00 = 0x000CC8157BE6B502 = 3597694319113474
7C 4C 3A 00 00 00 00 00 = 0x00000000003A4C7C = 3820668
和
3597694319113474 / 3600000000 = 999359.5331
3820668 / 3600000000 = 0.001061297
所以在一定的舍入范围内,它们可能是 3600000000 的分数的定点数?
你能得到更多的数据点吗?
我在一些第 3 方应用程序中有两个模块(它没有任何文档,由于保密原因我不能透露应用程序名称)。一个模块只输出整数,其他模块只输出浮点数。
输出整数的模块具有非常简单的数据格式,因为它是数字的十六进制表示形式,以相反的字节顺序排列。所以,我能够成功解码它。但是在解码浮点数的十六进制表示时遇到问题。
下面的数据显示了十六进制的数据转储,后跟预期的转换值。我有一点关于它的表示的信息,即最后两个字节是某种 CRC,因此,它就像一个带有两个 CRC 字节的 8 字节数字。 我已经突出显示了需要转换的 8 个字节,它们的预期值如下:
数据集 1:02 B5 E6 7B 15 C8 0C 00 0A F9 = 999359.533
数据集 2:7C 4C 3A 00 00 00 00 00 B7 4C = 0.001
任何人都可以在这里提出建议,我也尝试过很多编码方案,包括 IEEE 格式。我没有任何其他相关信息可以分享(我知道解决这个问题将是一个成功的尝试技术)。
不确定这是否有帮助但是:
02 B5 E6 7B 15 C8 0C 00 = 0x000CC8157BE6B502 = 3597694319113474
7C 4C 3A 00 00 00 00 00 = 0x00000000003A4C7C = 3820668
和
3597694319113474 / 3600000000 = 999359.5331
3820668 / 3600000000 = 0.001061297
所以在一定的舍入范围内,它们可能是 3600000000 的分数的定点数?
你能得到更多的数据点吗?