#audio #binary #hex #binary-data #hex-editors
#Аудио #бинарный #шестнадцатеричный #двоичные данные #шестнадцатеричные редакторы
Вопрос:
Я открыл волновой файл через шестнадцатеричный редактор. Я попробовал два шестнадцатеричных редактора, и оба поместили 44100 в шестнадцатеричном формате (AC44) в обратном порядке.
Почему это так? Для символов ASCII, «fmt», порядок является естественным.
Это AC44.
Имеет ли это отношение к Big-Endian / Little-Endian? Но почему другие значения должны отображаться в правильном порядке?
Спасибо!
Ответ №1:
Да, он хранится в формате little endian. Здесь показан порядковый номер каждого поля:
Обратите внимание, что существует смесь большого и малого порядкового номера.
Комментарии:
1. Для получения дополнительной информации о тегах FOURCC («WAVE», «fmt «) см. msdn.microsoft.com/en-us/library/windows/desktop /…
Ответ №2:
Это действительно имеет отношение к конечности. Тип данных, в который вы записываете, — это целое число, которое сохраняется как фрагмент из нескольких байтов.
Причина, по которой текстовые атомы выглядят так, как будто они не перевернуты, заключается в том, что они представляют собой упорядоченный список однобайтовых символов.
Ответ №3:
На самом деле это зависит от архитектуры и / или формата файла, см., Например, Здесь . Вы можете найти оба случая, один, где старший байт идет первым, а также где младший байт идет первым. В вашем случае это первое (называемое конечным порядком).
Ответ №4:
Потому что ваш шестнадцатеричный редактор печатает шестнадцатеричные байты с младшего адреса на старший адрес, а машины с малым порядком (например, x86 / ia32) хранят младшие цифры многобайтовых объектов в нижнем адресе.
Вы можете распечатать память с старших адресов на младшие адреса (но все равно слева направо), если хотите видеть байты в обратном порядке, поскольку в англоязычных странах числа обычно выводятся таким образом.