Mis on endianness?

Endiaalsus on täisarvude esitusviisi üksikasjaliku süsteemi funktsioon. See määrab numbrite kuvamise järjekorra. Sarnaselt kõnekeelega tuleb täisarvud koodide osana tõlkida paberile. Kuigi mõned kultuurid loevad paremalt vasakule ja mõned vasakult paremale, saab koodides numbreid paigutada ka paremalt vasakule või vasakult paremale.

Süsteemi mälu sisaldab baite ja iga asukoht süsteemis salvestab ühe mäluelemendi. Need elemendid on tavaliselt baidid, kuigi mõned süsteemid salvestavad bitte. Üks sõna või täisarv tähendab 32 bitti ehk nelja baiti. Kuna iga mäluaadress võib salvestada ainult ühe baiti, mitte nelja, tuleb täisarv jagada üksikuteks baitideks, millest igaüks kasutab selle baidi väärtuse tähistamiseks kahte numbrit.

Termin endianness pärineb Jonathan Swifti raamatust Gulliver’s Travels, kus ta kirjeldab satiiriliselt erinevusi inimeste keedetud munade söömise vahel – kas suurest või väikesest otsast. Seega on endiaalsust kahte tüüpi: suur endian ja väike endian. Suure endiani paigutus võtab täisarvu, mis koosneb mitmest baidist ja asetab neist kõige olulisemad baitid vasakule. Kõige olulisem bait salvestatakse väikseimale aadressile. Seda tüüpi baitide järjestamist on lihtne mõista neile, kes räägivad selliseid keeli nagu inglise keel, kus teksti loetakse vasakult paremale.

Väike endiani paigutus on selline, kus mitmebaidise täisarvu kõige olulisem bait asub paremal. Siin salvestatakse väikseimale aadressile kõige vähem oluline bait. See võimaldab lugemist paremalt vasakule, nagu heebrea ja araabia keel. Et bait oleks sirge, pidage meeles, et kui esmalt salvestatakse kõige vähem oluline bait (LSB), nimetatakse seda väikeseks endiaaniks. Kui kõige olulisem bait (MSB) salvestatakse esimesena, nimetatakse seda suureks endiaaniks.

Kõik süsteemid on kas suured või väikesed ja mõnel on registribitt, mis võimaldab kasutajal valida eelistatud endiuse. Täisarvude salvestamisel süsteemifaili võidakse fail saata masinasse, mis kasutab teist tüüpi endiaalsust. Numbrid oleksid tagurpidi ja sõnumil poleks mingit mõtet. Tavaliselt, kui pole kindel, millist lõppu kasutada, tuleb mängu midagi, mida nimetatakse võrgubaitide järjekorraks. Sellega saadetakse täisarvud neljast suurest või väikesest lõpubaidist koosnevate rühmadena, mis valitakse juhuslikult ja täisarvud vastuvõttev masin saab baidid ümber pöörata, kui lõppväärtused ei ühti.

Endiaalsust kasutatakse ainult siis, kui midagi suure väärtusega, näiteks sõna, jagatakse väiksemateks osadeks. Seejärel moodustatakse nende osade süsteemimällu salvestamise järjekord. Seda ei kasutata väärtuse salvestamisel registrisse, mis suudab seda kõike hoida. Sel juhul on kõik bitid, parem ja vasak, võrdselt olulised.