有没有人见过这种数据格式?我从一个包含某种打包二进制格式的数字字段的平面文件中获得了大量的记录。我从上下文知道他们代表数字,我有一些现有的翻译/解码,足以告诉我一些如何转换。最低位字节表示最低有效位,并且可能具有编码的符号。这是解码数字,然后是编码字节和相应的位模式。
0, 0c, 0000 1100
1, 1c, 0001 1100
2, b1, 1011 0001
3, 14, 0001 0100
4, 3c, 0011 1100
5, 2a, 0010 1010
6, 25, 0010 0101
7, 40, 0100 0000
8, d0, 1101 0000
9, 91, 1001 0001
超出第一个字节的字节似乎打包两个值,从00到99似乎有100个映射,我只会在这里显示一些,首先是解码的数字对和十六进制值。
00, 00, 0000 0000
01, 01, 0000 0001
02, 02, 0000 0010
03, 03, 0000 0011
04, dc, 1101 1100
05, 09, 0000 1001
06, c3, 1100 0011
07, 7f, 0111 1111
08, ca, 1100 1010
09, b2, 1011 0010
10, 10, 0001 0000
11, 11, 0001 0001
12, 12, 0001 0010
13, 13, 0001 0011
14, db, 1101 1011
15, da, 1101 1010
16, 08, 0000 1000
17, c1, 1100 0001
18, 18, 0001 1000
19, 19, 0001 1001
20, c4, 1100 0100
21, b3, 1011 0011
22, c0, 1100 0000
23, d9, 1101 1001
24, bf, 1011 1111
如果我遇到000125,那么结果是16. 000000c90c转换为350.如果我找到000000000000000f它应该转换为0,但我看不出怎么样,0000ec应该导致-8。
这里有足够的重复模式让我怀疑它是某种编码。我现在所拥有的就足以解码许多正数,但不是全部,我不知道如何处理负值,我不确定我的映射中是否存在信息丢失(考虑ieee浮点格式)
有什么想法吗?谢谢!
答案 0 :(得分:0)
由于它不使用任何传统的主机格式,也不使用任何奇偶校验/纠错方案(计算设置位),因此我只能假设它不是近期历史中常见的东西。可能会有某种XOR操作应用于其中一种旧格式,但如果是这样,它似乎不符合我可以检测到的模式。
鉴于没有人看过这种格式或有任何关于如何编写算法来解码它的线索,我只是假设这是一个半生不熟的尝试来加密数字。如果我能找到时间,我会编写一些代码来分析所有1亿个值,看看我是否能找到任何有用的东西,但是现在我只是想等一下,看看数据的发起者是否可以提供回答。或者一条线索。
我要标记它的回答,因为我不想用无法解决的难题折磨人。如果有人感到沮丧,我很抱歉,我只是希望以前有人可能会看到这个模糊不清的东西。