Porządkowanie grubokońcówkowe i cienkokońcówkowe

0

Cześć,
staram się rozwiązać poniższe zadanie, jednak po przeczytaniu artykułów na Wiki na temat big endian i little endian nie jestem w stanie tego zrobić.
Czy mógłby ktoś z Was mi wytłumaczyć jak to działa? Nie chodzi mi o odpowiedzi, ponieważ odpowiedzi mam - chcę się jednak nauczyć jak to robić.
Dziękuję

110f99e2d6.png

5

grubokońcówkowe i cienkokońcówkowe
omujborze, jak ja współczuję ludziom, którzy tego muszą się po naszemu uczyć.

Ok, jak ja to sobie zapamiętuję:
Big Endian - po ludzku
Little Endian - od du​py strony

Jest to po prostu kolejność zapisu cyfr w zapisie pozycyjnym. Dla przykładu, 123 jako liczbę czterocyfrową w Little Endian zapiszesz 3210, a w Big Endian 0123. Oba oznaczają to samo (0 * 103 + 1 * 102 + 2 * 101 + 1 * 100)

Musisz wziąć pod uwagę, że w tym kontekście "cyfrą" dla procesora jest 1 bajt¹, tak więc mając liczbę 12 34 56 7816 w Little Endian zapiszesz 78 56 34 12, a w Big Endian 12 34 56 78.

Tak przy okazji: przed C99 (oraz w C++) takie użycie unii to UB.

¹ mówimy o popularnych architekturach

0

tak więc mając liczbę 12 34 56 7816 w Little Endian zapiszesz 78 56 34 12, a w Big Endian 12 34 56 78.

Chodzi o ciąg bajtów w pamięci, bo liczba dziesiętna 12345678 daje szesnastkowo:
0x00BC614E
Po odwróceniu
0x4E61BC00
I zamianie na dziesiętną daje 1 315 027 968, czytli zupełnie co innego niż 78 56 34 12.

Pozdrawiam

0

16 oznacza podstawę. Pozdrawiam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.