Apa itu Endianness?

Endianness adalah fungsi dari sistem yang merinci representasi bilangan bulat. Ini memerintahkan cara angka muncul. Sama seperti bahasa lisan, bilangan bulat sebagai bagian dari kode harus diterjemahkan ke atas kertas. Sementara beberapa budaya membaca dari kanan ke kiri dan beberapa membaca dari kiri ke kanan, angka dalam kode juga dapat diatur dari kanan ke kiri atau kiri ke kanan.

Memori sistem berisi byte, dan setiap lokasi dalam sistem menyimpan satu elemen memori. Elemen-elemen ini biasanya byte, meskipun beberapa sistem menyimpan bit. Satu kata atau integer diterjemahkan menjadi 32 bit, atau empat byte. Karena setiap alamat memori hanya dapat menyimpan satu byte, bukan empat, bilangan bulat harus dipecah menjadi byte individu, yang masing-masing menggunakan dua digit untuk mewakili nilai byte tersebut.

Istilah endianness berasal dari buku Gulliver’s Travels oleh Jonathan Swift, di mana ia secara menyindir menggambarkan perbedaan antara cara orang makan telur rebus—baik dari ujung besar atau ujung kecil. Oleh karena itu, endianness hadir dalam dua jenis: big endian dan little endian. Susunan big endian mengambil bilangan bulat yang terdiri dari beberapa byte dan menempatkan yang paling signifikan dari byte ini di sebelah kiri. Byte paling signifikan disimpan di alamat terkecil. Jenis pengurutan byte ini mudah dipahami oleh mereka yang berbicara bahasa seperti bahasa Inggris, di mana teks dibaca dari kiri ke kanan.

Pengaturan little endian adalah pengaturan di mana byte terpenting dalam bilangan bulat multibyte akan berada di sebelah kanan. Di sini, byte paling tidak signifikan disimpan di alamat terkecil. Ini membuat pembacaan dari kanan ke kiri, seperti bahasa Ibrani dan Arab. Untuk menjaga urutan byte tetap lurus, ingatlah bahwa ketika byte paling signifikan (LSB) disimpan terlebih dahulu, itu disebut little endian. Ketika byte paling signifikan (MSB) disimpan terlebih dahulu, itu disebut big endian.

Semua sistem adalah big atau little endian, dan beberapa memiliki bit register, yang memungkinkan pengguna untuk memilih endianness yang diinginkan. Saat menyimpan bilangan bulat dalam file sistem, file mungkin dikirim ke mesin yang menggunakan jenis endianness lainnya. Angkanya akan mundur, dan pesannya tidak masuk akal. Biasanya, ketika tidak pasti endianness mana yang akan digunakan, sesuatu yang disebut urutan byte jaringan ikut bermain. Dengan ini, bilangan bulat dikirim dalam kelompok empat byte baik endianness besar atau kecil, dipilih secara acak, dan mesin yang menerima bilangan bulat dapat membalikkan byte jika endianness tidak cocok.

Endianness hanya digunakan ketika memecah sesuatu yang bernilai besar, seperti sebuah kata, menjadi bagian-bagian yang lebih kecil. Perintah untuk menyimpan bagian-bagian ini dalam memori sistem kemudian dibentuk. Itu tidak digunakan saat menyimpan nilai ke dalam register yang dapat menampung semuanya. Dalam hal ini, semua bit, kanan dan kiri, sama pentingnya.