Я пытаюсь проанализировать старый двоичный формат, который не имеет каких-либо спецификаций. Я понял, что существует массив из 96 чисел с плавающей запятой, каждый из которых имеет длину 4 байта.Кодирование чисел с плавающей запятой с обратным проектированием
Я потратил много времени на различные шестнадцатеричные инструменты, но без везения. Я не мог найти ни одной картины. Поэтому я подозреваю, что это какое-то необычное представление с плавающей точкой, а не какой-то стандарт, например IEEE-754.
Вот длинный список примеров, как байты карты плавать значение: https://gist.github.com/anonymous/e67dd27706ba1f289a895fef70399dc9
Несколько примеров:
80 00 00 80 = 0
00 FF 00 00 = 0
B8 EB 83 43 = 1.86281420496466
F8 AF 86 43 = 1.9018805660946
7B C2 F2 43 = 3.42793766176755
37 43 F5 43 = 3.46327992859723
6A 4D 03 44 = 3.70816455369089
26 C6 0A 44 = 3.919173581123
AF C3 79 43 = 1.76342447568475
Я в состоянии обеспечить значение с плавающей точкой для любого байта комбинации, которые могут быть полезны для анализ.
Не могли бы вы помочь мне выяснить формулу, как преобразовать эти необработанные байты в float?
Каковы значения с плавающей точкой для '00 00 00 43',' 01 00 00 43', '02 00 00 43' и' 00 00 00 44'? –
Вот значения: '00 00 00 43 = 0.903725041656076' ' 01 00 00 43 = 0.903725149388496' '02 00 00 43 = 0.903725257120917' ' 00 00 00 44 = 3.6149001666243' еще один вещь, все данные представлены в порядке из файла, возможно, они должны быть отменены для анализа. – pliber
@pliber Скорее всего, это примеры отрицательных операндов, а также очень большие и очень маленькие (по величине), а также примеры через несколько * последовательных * бинад (например, в [1,2], [2, 4] , [4, 8], [8, 16], [16, 32]. – njuffa