Смена порядка байтов
Ввод (hex)
Результат со сменой порядка байтов
Технические детали
Как работает инструмент смены порядка байтов (Swap Endianness)
Что делает инструмент
Инструмент Swap Endianness разворачивает порядок байтов шестнадцатеричного ввода в пределах настраиваемого размера слова (2, 4 или 8 байт). Он предназначен для преобразования между представлениями little-endian и big-endian целых чисел фиксированной разрядности, записанных в hex, что часто требуется при работе с бинарными форматами файлов, сетевыми протоколами или низкоуровневыми отладочными инструментами, которые расходятся во мнении о порядке байтов.
Распространенные сценарии использования для разработчиков
Реверс-инженеры нормализуют hex-дампы с x86 или ARM (little-endian) и PowerPC или MIPS (исторически big-endian), чтобы сравнивать значения между архитектурами. Сетевые инженеры преобразуют целые числа из порядка байтов хоста в сетевой порядок байтов (всегда big-endian) перед встраиванием их в дампы пакетов. Разработчики встраиваемых систем отлаживают структуры, сохранённые во flash, выравнивая байты под формат, ожидаемый их инструментами анализа.
Форматы данных, типы или варианты
Ввод принимает hex с префиксом `0x` или без него и произвольные пробельные символы. Вывод отображается как hex-байты в нижнем регистре, разделённые пробелами, для наглядности. Размеры слова 2, 4 и 8 байт соответствуют 16-, 32- и 64-битным целым числам соответственно. Несколько слов меняются независимо: при размере слова 4 байта, 12345678 9ABCDEF0 превращается в 78 56 34 12, затем F0 DE BC 9A.
Распространенные ошибки и крайние случаи
Ввод должен содержать целое число байтов (чётное количество hex-цифр) и целое число слов (кратное заданному размеру слова в байтах). Несовпадение размеров возвращает ошибку, а не молча обрезает данные. Сетевой порядок байтов всегда big-endian, тогда как x86 / ARM используют little-endian — меняйте байты местами при чтении или записи целых чисел в wire-format.
Когда использовать этот инструмент, а когда — код
Используйте браузерный инструмент для разовых преобразований при чтении бинарных дампов или отладке. В коде предпочитайте `DataView` с явными флагами `littleEndian` в JavaScript, `byteorder='little'|'big'` в Python для `int.from_bytes`, `binary.LittleEndian.Uint32` в Go или `ntohl` / `htonl` в C — так намерение понятнее и не нужны преобразования через hex.