представляющие двойные значения в катае - PullRequest
0 голосов
/ 27 апреля 2020

Некоторые значения, которые мне нужно прочитать в моем файле ksy, являются значениями типа double, которые, как я полагаю, являются структурой двоичного кода64. Нативные типы данных для поплавка не будут так сильно растягиваться. Кому-нибудь удалось представить этот тип данных в Kaitai?

1 Ответ

0 голосов
/ 27 апреля 2020

«binary64» - это обычный IEEE 754 с плавающей запятой двойной точности, занимающий 64 бита = 8 байт.

Они отлично поддерживаются подавляющим большинством языков и, следовательно, Kaitai Struct предлагает встроенную поддержку для них как type: f8 (число с плавающей запятой, длина 8 байтов).

Если вас больше интересуют большие значения с плавающей запятой (binary128, binary256 - то есть с точностью до четверной или восьмикратной точности), нет встроенной поддержки для них в KS из-за отсутствия стандартной поддержки этих типов в большинстве целевых языков. Если вы хотите что-то в этом роде, рекомендуется использовать его как непрозрачный тип на выбранном вами языке. Это, вероятно, потребует от вас наличия некоторой внешней библиотеки, которая реализует этот тип, используя некоторую программную эмуляцию / сложную арифметику - поскольку аппаратная поддержка , по-видимому, почти отсутствует в обычных процессорах (таких как Intel или ARM) по состоянию на 2020 год.

Подробнее об этом см. выпуск # 101 .

...