Załóżmy, że otwieram plik tiff w emacsie i widzę następujące w trybie hexl:
0x08000400
i wiem, że plik jest mały endian. Czy to oznacza, że liczba wynosi 262152 w systemie dziesiętnym, lub
0x00040008
w heksie? Czy ta konwersja na liczbę dziesiętną byłaby inna, gdyby była 8-bitowa vs. 16-bitowa?
Odpowiedzi:
Dla wartości 8-bitowych endianność nie ma znaczenia.
Poza tym ważna jest struktura danych pola.
Jeśli pracujesz z małym plikiem endian jako strumieniem bajtów (jak pokazano tutaj),
16-bitowa wartość ma niższy bajt przed swoim wyższym bajtem. Zatem „0x08 0x00” jest wartością 8.
Być może już to wiesz, ale warto to zauważyć.
Od strony TIFF Wikipedia ,
źródło
0x08000400
różni się od0x08 0x00 0x04 0x00
. Pierwsze jest 32-bitowym słowem i zawiera założenia dotyczące endianowości, drugie to sekwencja bajtów, w której endianowość nie jest istotna.:
separatory „ ” sugerują sekwencję bajtów (z rozwiązaniem endianness). Nazywany także „octet stream
”.