Почему целые байты хранятся в обратном порядке?Это относится только к заголовкам? - PullRequest
13 голосов
/ 12 сентября 2010

Я сейчас пытаюсь расшифровать файлы WAV.От заголовков до данных PCM.

Я нашел PDF (http://www.tdt.com/T2Support/technical_notes/tn0132.pdf), в котором подробно описывается анатомия WAV-файла, и я смог извлечь и разобраться в соответствующих данных заголовкаиспользуя Ghex 2. Но мои вопросы таковы:

Почему байты целых чисел хранятся в обратном порядке? Т.е. 20-е число хранится как 0x14000000 вместо 0x00000014.

Целые числа данных PCM также сохраняются в обратном направлении?

Ответы [ 2 ]

14 голосов
/ 12 сентября 2010

WAV-файлы имеют порядок байтов (в первую очередь младшие значащие байты), потому что формат создан для операционных систем, работающих на компьютерах с процессором Intel, которые используют формат байтов с прямым порядком байтов для хранения чисел.имеет смысл, потому что если вы хотите преобразовать длинное целое число в короткое или даже символ, начальный адрес остается прежним, вы просто смотрите на меньшее количество байтов.

Следовательно, для 16-битного кодирования вверх, младшийформат будет использоваться и для PCM.Это очень удобно, так как вы сможете использовать их как целые числа.не забывайте, что они будут храниться как целые числа со знаком в двоичном коде, если они 16-битные, но не 8-битные.(Подробнее см. http://www -mmsp.ece.mcgill.ca / Documents / AudioFormats / WAVE / WAVE.html )

3 голосов
/ 12 сентября 2010

«Назад» субъективно. Некоторые машины имеют большие порядковые номера , другие - порядковые . В байтово-ориентированных контекстах, таких как форматы файлов и сетевые протоколы, порядок произвольный. Некоторые форматы предпочитают указывать значения с прямым или младшим порядком байтов, другие предпочитают быть гибкими и принимают любую форму с флагом, указывающим, какая из них используется.

Похоже на WAV-файлы, как little-endian.

...