Порядок байтов телеметрии: почему 01 02 даёт разные числа
Многобайтовое числовое поле требует не только определения типа, но и порядка байтов. Если программа выбрала другое старшинство, исходное сообщение может быть сохранено точно, а полученное число окажется иным. В судовом телеметрическом разборе это полезно проверить до обсуждения физической причины странного показания.
Рассмотрим самостоятельный арифметический пример двухбайтового беззнакового целого. Он не утверждает, что конкретная судовая сеть использует этот формат. Правило реального поля устанавливают по документации соответствующего обмена.
Два возможных порядка
Пусть в журнале записаны байты 01 и 02 в указанной последовательности. Если первый байт является старшим, число получается как один, умноженный на 256, плюс два: итог 258. Если первым записан младший байт, расчёт будет два, умноженное на 256, плюс один: итог 513.
Оба вычисления арифметически определены. Выбор между ними требует знания формата, а не предпочтения меньшего числа. Сам факт совпадения результата с ожидаемым диапазоном на одной записи ещё не доказывает правильность декодирования всего потока.
Что проверить вместе со старшинством
Практически полезно установить начало поля и его длину. Если программа читает два соседних байта со смещением на одну позицию, исправление порядка не устранит ошибку границ. Также отдельно проверяют знаковость, масштаб и специальные коды, когда они предусмотрены описанием.
Читаемая текстовая запись числа является другим случаем. Последовательность символов «258» нельзя автоматически обрабатывать как те же два бинарных байта. Сначала следует определить, передаёт ли поле текстовое представление или двоичный код, и только затем применять соответствующее правило.
Как подобрать учебную выборку
Удобно использовать тестовые значения, у которых старший и младший байты различаются. Код с двумя одинаковыми байтами не выявит перестановку: результат окажется одинаковым в обоих вариантах. Поэтому одна удачная проверка на симметричном коде может оставить ошибку незамеченной.
В учебном наборе можно заранее записать исходное значение, ожидаемые байты и результат обратного преобразования. Затем проверить несколько значений в разных частях диапазона. Такой разбор выполняется на подготовленных данных и не требует изменения формата действующего судового источника.
Как сохранить основание результата
Для проверяемой записи полезно оставить исходные байты, границы поля и использованный порядок. Если позднее обнаружится другое описание протокола, результат можно воспроизвести и пересчитать без догадок о первоначальном сообщении.
Практический итог — определённое правило получения числа из нескольких байтов. Оно помогает отличить ошибку интерпретации от реального изменения параметра. Разбор не подтверждает исправность измерительного оборудования, не заменяет спецификацию обмена и не устанавливает пригодность самостоятельно декодированных данных для ответственной судовой функции.