Nie pracuję codziennie z problemami big-endian i little-endian, dlatego bardzo trudno mi zapamiętać, który z nich jest czymś.
Niedawno dostałem wywiad z pytaniem o różnicę między nimi; ponieważ nie pamiętam, postanowiłem „zgadnąć” (w końcu 50% szansy), ale mi się nie udało.
Czy jest jakaś powszechnie znana sztuczka praktyczna, aby pamiętać, jaka jest różnica między wielkim endianem a małym endianem?
endianness
Emiliano
źródło
źródło
Odpowiedzi:
Zawsze myślałem, że to źle zdefiniowane, i to także wskazówka, żeby o tym pamiętać. Jako nieanglojęzyczny użytkownik języka angielskiego widzę „koniec” jako przeciwieństwo „początku” (chociaż oczywiście „koniec” może oznaczać albo koniec - początek, albo koniec). W każdym razie po prostu pamiętam, że „jest źle zdefiniowane” :)
Lub odnosząc się do endianizmu bitowego :
Chociaż zwykłe użycie słowa endianness odnosi się do tego, w jaki sposób bajty są uporządkowane w obrębie słowa, jego ogólne znaczenie odnosi się do uporządkowania indywidualnie adresowalnych podskładników w ramach reprezentacji większego elementu danych ( jak wyjaśniono w Wikipedii ).
źródło
Moja własna wskazówka:
źródło
Najlepszym sposobem na zapamiętanie tego jest to, że ludzie cywilizowani szukają różnorodności, a zatem jedzą jajka inaczej niż porządkują. Podczas gdy piszemy cyfry dziesiętne zaczynając od wielkich cyfr jako pierwszy (duży endian), jemy jajka na miękko z małego końca (mały endian).
źródło
Liczby big-endian zaczynają się od „dużego końca”. Liczby Little-Endian zaczynają się od „małego końca”.
Oba są aluzją do kwestii, od czego zacząć jeść jajko, zgodnie z podróżami Guliwera.
W tym przypadku „koniec” nie jest przeciwieństwem początku, oznacza po prostu jakąkolwiek skrajność (sekwencja | lina | ciąg | liczba | sekwencja), a zatem nie są one nazywane „dużym finiszem” lub „małym finiszerem” (co na pewno byłoby przeciwieństwo „start”).
źródło
Najłatwiej jest mi zapamiętać zmianę słowa „endian” na „startian”. Duże początkowe liczby całkowite zaczynają się od dużego końca (np. Najważniejsze bajty są pierwsze), a małe początkowe liczby całkowite zaczynają się od małego końca (np. Najmniej znaczące bajty są pierwsze).
źródło
Nigdy nie pamiętałem, który jest „big-endian”, a który „little-endian”, ale znałem endianizm procesorów PowerPC i Intel x86. Niewiele ma większość liter wspólnych z Intelem, więc Intel x86 jest little-endian.
Oczywiście jest to przydatne tylko, jeśli znasz kolejność bajtów PPC i x86. Z drugiej strony powinieneś teraz pamiętać, że Intel x86 = little-endian. I pamiętaj, że x86 i ARM są bardzo, bardzo kompatybilne, nawet z zupełnie innymi zestawami instrukcji.
źródło
Powiedziałbym tak: Big jest piękny!
Duży == piękny == racja.
Właściwą endianią jest ta, którą można odczytać na zrzutie heksadecymalnym, czyli tym, który stawia najbardziej znaczący bajt na pierwszym miejscu, jak każdy rozsądny człowiek.
Mały == brzydki == źle.
Zrzuty heksowe powstałe w wyniku tego endianizmu są tak błędne, że uciekasz krzycząc „Mózg!”. Może to jest jakaś obrzydliwość kosmitów, możemy jedynie spekulować na temat źródła tego okrucieństwa. Niemniej jednak istnieje i utknęliśmy z tym.
Pitty, nie zawsze jest to najlepszy wariant, który sprawia, że wyścig ...
źródło
Little == ugly == wrong
... „Nawet najmniejsza osoba może zmienić bieg przyszłości” - Galadrial,In big endian: (rosnąco)
Niska do wysokiej tj
0 | 1 | 2 | 3 ^ ^ Początek Koniec
In little-Endian: (malejąco)
Malejąco
to znaczy
3 | 2 | 1 | 0 ^ ^ Początek Koniec
źródło