Используя пакет numericio, Maxima может считывать двоичные данные из потоков и файлов вдоль 8-битных границ и устанавливать желаемый порядок байтов для считывания. Numericio поставляется с предварительно скомпилированной версией Windows.
Итак, если вы имеете дело как минимум с 16-битными регистрами, и вы хотите разделить регистры по 8-битным границам, тогда функция
read_binary_array (S, A),
может быть тем, что вы ищете, где S - источник данных, а A - массив (пункт назначения).
Существуют также варианты и вспомогательные функции, которые вы можете рассмотреть / которые могут понадобиться:
read_binary_list()
openr_binary() /* for reading in from a file */
assume_external_byte_order() /* default action is msb first */
Это самый вариант направления.
В вашем вопросе не так много дополнительных данных, поэтому здесь следует рассмотреть два других способа.
Если вам нужно больше средств «предварительной обработки», чем у Maxima с числовыми, вы можете рассмотреть возможность создания короткого конвейера, выполняющего предварительную обработку на другом языке, который быстр и имеет низкоуровневую гибкость (Ruby хорошо для этого, как и другие языки сценариев), а затем прочитайте очищенный файл в Maxima, используя пакет, описанный ниже.
Наконец, эти более нетипичные попытки обычно попадают в какую-то стену, прежде чем все перегибы срабатывают.
Когда это происходит, я рекомендую использовать список рассылки Maxima . Я обнаружил, что это очень отзывчивое, экспертное сообщество, которое может не только помочь вам выйти из тупика, но и поднять уровень вашего мастерства и вашего знакомства с «естественным» стилем программирования Maxima. Это очень помогло мне в работе, которую я проделал.
(Дополнительные ресурсы по Maxima, включая готовый справочный лист, см. Ресурсы: Maxima для символьных вычислений )
Приветствия