Pytanie Dlaczego liczby całkowite są przechowywane wstecz? Czy dotyczy to tylko nagłówków?


Obecnie próbuję rozszyfrować pliki WAV. Od nagłówków do danych PCM.

Znalazłem plik PDF (http://www.tdt.com/T2Support/technical_notes/tn0132.pdf) wyszczególniając anatomię pliku WAV, i byłem w stanie wyodrębnić i zrozumieć sens odpowiednich danych nagłówka za pomocą Ghex2. Ale moje pytania to:

Dlaczego liczby całkowite są przechowywane wstecz? To znaczy. dec. 20 jest przechowywane jako 0x14000000 zamiast 0x00000014.

Czy liczby całkowite danych PCM są również przechowywane wstecz?


11
2017-09-11 20:02


pochodzenie


Nie ma "wstecz". Wszystko zgodnie z konwencją. Szukaj wikipedia dla Endianness. - Detmar
... a kiedy już zrozumiesz, że zarówno duża, jak i mała endianizm są rozsądne, spróbuj owinąć swój umysł wokół mieszanej endianness. Potem płacz. - dmckee
mały endian nie jest jednak rozsądny. co z tego jest rozsądne? - MarcusJ


Odpowiedzi:


Pliki WAV są mało-endianowe (najmniej znaczące bajty jako pierwsze), ponieważ format pochodzi z systemów operacyjnych działających na komputerach z procesorami intel, które używają małego formatu endian do przechowywania liczb.

Jeśli myślisz o tym, ma to sens, ponieważ jeśli chcesz rzucić długą liczbę całkowitą na krótką lub nawet na znak, adres początkowy pozostaje taki sam, wystarczy spojrzeć na mniej bajtów.

W związku z tym, dla 16-bitowego kodowania w górę, do PCM zostanie użyty format little-endian. Jest to bardzo przydatne, ponieważ będziesz mógł je pobrać jako liczby całkowite. nie zapominaj, że będą one zapisane jako liczby całkowite ze znakiem uzupełnienia dwóch, jeśli są 16-bitowe, ale nie jeśli są 8-bitowe. (widzieć http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html po więcej szczegółów)


12
2017-09-11 20:31



To dziwne, że wspomniana strona stwierdza, że ​​liczba powinna być przechowywana w formie big-endian (ale format faktycznie używa little-endian). - Groo
Wspomniana strona nie zawiera już niczego, co zniknęło ... (Zauważyłem, że zdarza się to dość często w przypadku linków do witryn uczelnianych, po kilku latach). - Peter Hansen
Nie jestem pewien, czy mój plik nie jest zgodny czy co, ale wszystkie pola liczbowe (częstotliwość próbkowania, przepływność, itp.) Są przechowywane w małym endianie, podczas gdy wszystkie pola słów (RIFF, WAVE, fmt, itp.) są przechowywane w dużym endianie. - MarcusJ


"Backwards" jest subiektywne. Niektóre maszyny są dużeendianinne są mało-endian. W kontekstach bajtowych, takich jak formaty plików i protokoły sieciowe, kolejność jest dowolna. Niektóre formaty określają big-lub little-endian, inni lubią być elastyczni i akceptują dowolną formę, z flagą wskazującą, która jest używana.

Wygląda jak pliki WAV, podobnie jak little-endian.


3
2017-09-11 20:08