Definice a význam Endianness

Co je Endianness?

Endianita je termín z oblasti počítačové vědy, který popisuje způsob, jakým jsou data uložena. Konkrétně definuje, který konec vícebajtového typu dat obsahuje nejvýznamnější hodnoty. Dva typy endianity jsou big-endian a little-endian.

Big-endian

Big-endian je nejběžnější způsob ukládání binárních dat. Nejdříve se při něm umisťuje nejvýznamnější (neboli největší) hodnota, za ní následují méně významné hodnoty. Například big-endianská reprezentace celé číslo 123 umisťuje nejprve hodnotu stovek (1), za ní následuje hodnota desítek (2), pak hodnota jedniček (3) neboli [123].

Malý endian

Malý endian ukládá nejprve nejméně významnou hodnotu, za kterou následují stále významnější hodnoty. Například číslo 123 v little-endian zápisu je [321]. Text string“ABC“ je reprezentován jako [CBA].

Převod na endian

Ve většině případů vývojáři nemusí endianitu určovat, protože kompilátor generuje správný typ dat pro konkrétní platformu. Program však může potřebovat zpracovat externí vstup, například formát souboru, který ukládá data s jinou endianitou. V takovém případě je třeba data převést z little-endian na big-endian nebo naopak.

Převod endianity není tak jednoduchý jako obrácení dat. Musí se obrátit byty, nikoliv bity. Jinými slovy, každý bajt (nebo blok osmi bitů) musí zůstat stejný, ale pořadí bajtů se změní. To lze vysvětlit pomocí hexadecimální nebo binární reprezentace dat.

Například celé číslo 41 394 je reprezentováno v big-endian zápisu jako:

hexadecimální:A1B2
binární:1010000110110010

Převodem těchto dat na little-endian se neobrátí data, ale spíše jednotlivé bajty v datech. V šestnáctkové soustavě se pro vyjádření každého bajtu používají dvě číslice – [A1][B2], zatímco ve dvojkové soustavě osm číslic – [10100001][10110010].

Malá endiánská reprezentace 41 394 je tedy:

hexadecimální:B2A1
binární:1011001010100001

POZNÁMKA:Některé procesory mohou načítat data jako big-endian nebo little-endian bez nutnosti konverze. Tomu se říká bi-endian přístup k datům.

Definice Endianness na této stránce je původní definice na SharTec.eu. Pokud chcete na tuto stránku odkázat, nezapomeňte uvést zdroj článku.

Cílem webu SharTec.eu je srozumitelně vysvětlit počítačovou terminologii. Snažíme se o jednoduchost a přesnost každé definice, kterou zveřejňujeme. Pokud máte připomínky k definici jazyka Endianness nebo chcete navrhnout nový technický termín, kontaktujte nás.

Cieľom stránky SharTec.eu je vysvetľovať počítačovú terminológiu zrozumiteľným spôsobom. Pri každej uverejnenej definícii sa snažíme o jednoduchosť a presnosť. Ak máte pripomienky k definícii jazyka Endianness alebo chcete navrhnúť nový technický termín, kontaktujte nás.