Saya tidak bekerja setiap hari dengan masalah big-endian dan little-endian dan karenanya saya sulit mengingat yang mana.
Baru-baru ini saya mendapat wawancara menanyakan perbedaan antara keduanya; karena saya tidak ingat saya memutuskan untuk "menebak" (kesempatan 50%, setelah semua) tetapi saya gagal.
Jadi, adakah trik praktis yang dikenal luas untuk mengingat apa perbedaan antara big endian dan little endian?
endianness
Emiliano
sumber
sumber
Jawaban:
Saya selalu berpikir bahwa itu didefinisikan dengan cara yang salah, dan itu juga tip untuk mengingatnya. Sebagai penutur bahasa Inggris non-pribumi, saya melihat "akhir" sebagai kebalikan dari "mulai" (meskipun jelas "akhir" dapat berarti akhir - awal, atau akhir). Lagi pula, saya hanya ingat bahwa "itu didefinisikan dengan cara yang salah" :)
Atau, mengacu pada bit endianness :
Meskipun penggunaan kata endianness yang biasa mengacu pada bagaimana byte diurutkan dalam sebuah kata, makna generiknya merujuk pada pemesanan sub-komponen yang dapat dialamatkan secara individu dalam representasi item data yang lebih besar ( seperti yang dijelaskan dalam Wikipedia ).
sumber
Kiat saya sendiri:
sumber
Cara terbaik untuk mengingat ini adalah bahwa orang beradab mencari varietas dan karenanya makan telur mereka berbeda dari yang mereka pesan. Sedangkan kita menulis angka desimal dimulai dari angka besar pertama (big endian), kita makan telur rebus dari ujung kecil (little endian).
sumber
Angka big-endian mulai dari "big end". Angka-angka little-endian dimulai dari "little end".
Keduanya merupakan singgungan untuk masalah di mana mulai makan telur Anda, sesuai Gulliver's Travels.
Dalam hal ini, "akhir" bukan kebalikan dari awal, itu hanya berarti setiap ekstrim dari (tali | string | nomor | urutan), sehingga mereka tidak disebut "finishian besar" atau "finishian kecil" (yang pasti akan menjadi kebalikan dari "mulai").
sumber
Cara termudah untuk saya ingat adalah mengubah kata "endian" menjadi "startian". Bilangan bulat pemula mulai dengan ujung besar (misalnya byte paling signifikan didahulukan), dan bilangan bulat pemula mulai dengan ujung kecil (mis. Byte paling tidak signifikan diutamakan).
sumber
Saya tidak pernah bisa mengingat yang "big-endian" dan yang "little-endian" tetapi tahu endianness dari prosesor PowerPC dan Intel x86. Little memiliki sebagian besar huruf yang sama dengan Intel, jadi Intel x86 adalah little-endian.
Tentu saja itu hanya berguna jika Anda tahu urutan byte PPC dan x86. Di sisi lain, Anda sekarang harus ingat bahwa Intel x86 = little-endian. Dan ingat bahwa x86 dan ARM sangat, sangat kompatibel bahkan dengan set instruksi yang sama sekali berbeda.
sumber
Saya akan begini: Besar itu indah!
Besar == indah == benar.
Endianess yang tepat adalah yang dapat Anda baca dalam hexdump, yang merupakan yang menempatkan byte paling signifikan terlebih dahulu, seperti halnya manusia waras.
Sedikit == jelek == salah.
Hexdumps yang diproduksi oleh endianess ini benar-benar salah sehingga Anda lari berteriak "Otak!". Mungkin ini adalah semacam kekejian alien, kita hanya bisa berspekulasi dengan asal mula kekejaman ini. Namun demikian, itu ada, dan kita terjebak dengannya.
Pitty, itu tidak selalu varian terbaik yang membuat balapan ...
sumber
Little == ugly == wrong
... "Bahkan orang terkecil dapat mengubah arah masa depan" -Galadrial, LOTRDalam big endian: (Urutan naik)
Yaitu rendah ke tinggi
0 | 1 | 2 | 3 ^ ^ Mulai Akhir
In little-Endian: (Urutan menurun)
Tinggi sampai rendah
yaitu
3 | 2 | 1 | 0 ^ ^ Mulai Akhir
sumber