我正在使用文本可读文件,这些文件是从使用类似自定义XML结构的客户端系统导出的.我需要能够从大量这些文件中解析和提取数据,而无需记录它们的结构.
我已经完成了文件结构,但是我正在努力解决如何编码值.我可以在系统中手动查找正确的值作为比较.一些例子:
Export Data = System Value
D411E848 = 500000
D40F86A = 100000
D41086A = 200000
Run Code Online (Sandbox Code Playgroud)
我很确定领先的"D"是一个标记,表示该字段是十进制或双精度值.原因是所有数字字段以"D"开头,所有文本字段以"S"开头.以下"4"也可以是字段数据类型的一部分,因为所有数字字段似乎都以"D4"开头.
但是,在导出数据值的任何组合上从十六进制转换为十进制都不会产生正确的结果.
任何想法如何进行转换?
额外的数据映射:
Value Export File
1 D3FF
2 D4
3 D4008
4 D401
5 D4014
6 D4018
7 D401C
8 D402
9 D4022
10 D4024
100 D4059
1000 D408F4
100000 D40F86A
500000 D411E848
500001 D411E8484
500002 D411E8488
500003 D411E848C
500004 D411E849
500005 D411E8494
500006 D411E8498
500007 D411E849C
500008 D411E84A
500009 D411E84A4
500010 D411E84A8
Run Code Online (Sandbox Code Playgroud)
看起来像普通但截断的IEEE 754 64位(双精度)数字.
0x408F400000000000 = 1000
408F4 (truncated)
D408F4 (prefixed with D)
0x411E848000000000 = 500000
411E848 (truncated)
D411E848 (prefixed with D)
Run Code Online (Sandbox Code Playgroud)
尝试使用以下网站转换它作为参考:http://www.binaryconvert.com/result_double.html?decimal = 053048048048048048