DevToys Web Pro iconDevToys Web ProБлог
Оцените нас:
Попробуйте расширение для браузера:

Смена порядка байтов

8 bytes (2 words)
Размер слова

Ввод (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.