Ce este Endianness?

Endianness este funcția unui sistem care detaliază reprezentarea întregului. Ordonează modul în care apar numerele. La fel ca într-o limbă vorbită, numerele întregi ca parte a codurilor trebuie traduse pe hârtie. În timp ce unele culturi citesc de la dreapta la stânga, iar unele citesc de la stânga la dreapta, numerele din coduri pot fi, de asemenea, aranjate fie de la dreapta la stânga, fie de la stânga la dreapta.

Memoria unui sistem conține octeți, iar fiecare locație din sistem stochează un element al memoriei. Aceste elemente sunt de obicei octeți, deși unele sisteme stochează biți. Un cuvânt sau un număr întreg se traduce în 32 de biți sau patru octeți. Deoarece fiecare adresă de memorie poate stoca doar un octet, nu patru, întregul trebuie împărțit în octeți individuali, care folosesc fiecare două cifre pentru a reprezenta valoarea octetului respectiv.

Termenul de endianness provine din cartea Călătoriile lui Gulliver de Jonathan Swift, unde descrie satiric diferențele dintre felul în care oamenii mănâncă ouă fierte – fie de la capătul mare, fie de la capătul mic. Prin urmare, endianitatea vine în două soiuri: big endian și little endian. Un aranjament big endian ia un număr întreg format din mai mulți octeți și plasează cei mai semnificativi dintre acești octeți în stânga. Cel mai semnificativ octet este stocat în cea mai mică adresă. Acest tip de ordonare a octetilor este ușor de înțeles de către cei care vorbesc limbi precum engleza, unde textul este citit de la stânga la dreapta.

Un aranjament little endian este unul în care cel mai important octet dintr-un număr întreg pe mai mulți octeți va fi în dreapta. Aici, octetul cel mai puțin semnificativ este stocat în cea mai mică adresă. Acest lucru face o citire de la dreapta la stânga, cum ar fi limbile ebraică și arabă. Pentru a menține ordonarea corectă a octetilor, amintiți-vă că atunci când octetul cel mai puțin semnificativ (LSB) este stocat mai întâi, acesta se numește little endian. Când cel mai semnificativ octet (MSB) este stocat primul, se numește big endian.

Toate sistemele sunt fie mari, fie mici, iar unele au un bit de registru, care permite utilizatorului să aleagă endianitatea preferată. Când se stochează numere întregi într-un fișier de sistem, fișierul poate fi trimis la o mașină care utilizează celălalt tip de endian. Cifrele ar fi înapoi, iar mesajul nu ar avea niciun sens. În mod obișnuit, atunci când nu este sigur ce endian să folosiți, ceva numit ordinea octeților de rețea intră în joc. Cu aceasta, numerele întregi sunt trimise în grupuri de patru octeți de endianitate mare sau mică, alese la întâmplare, iar mașina care primește numerele întregi poate inversa octeții dacă endianitățile nu se potrivesc.

Endianitatea este folosită numai atunci când despărțim ceva de mare valoare, cum ar fi un cuvânt, în părți mai mici. Se formează apoi o ordine în care să fie stocate aceste piese în memoria sistemului. Nu este utilizat atunci când se stochează o valoare într-un registru care poate să o dețină pe toate. În acest caz, toți biții, dreapta și stânga, sunt la fel de importanți.