Teorie informace

Jednotky informace

Bit (b)

Bit je základní a nejmenší jednotkou informace. Bit může nabývat pouze jednu ze dvou hodnot (jeden ze dvou stavů), které se dají interpretovat například jako 1 / 0, true / false, atd. Skupina 8 bitů tvoří jeden byte.

Byte (B, bajt)

Byte je jednotka množství dat v informatice. Skládá se z 8 bitů, tudíž může reprezentovat například číslo od 0 do 255 nebo jeden znak. Jeden byte je v obvykle nejmenší objem dat, se kterým dokáže procesor přímo pracovat.

Dříve byte označoval skupinu 1-7 bitů, dnes je standard 8 bitů.

Ve frankofonních zemích se někdy pro bajt používá značka o jako oktet (octet).

Násobnosti a převody binárních jednotek

V prosinci 1998 IEC (International Electrotechnical Commission) vytvořila dodatek k normě IEC 60027-2, ve kterém zavedla pro počítačové jednotky nový systém označování násobků. V tomto systému bylo pro původní „velké kilo“ = 1024 B navrženo označení kibibajt a značka KiB, zatímco jednotka kilobajt (se značkou kB) označuje 1000 B, tak jak je obvyklé v soustavě SI.

Binární předpona

Binární předpona je předpona jednotky vyjadřující násobek mocniny 2, podobně jako klasické předpony z SI vyjadřují násobek 10. Binární předpona vyjadřuje vždy o něco vyšší hodnotu než předpona klasická.

Dvojkový řád n: 2n	Desítkový řád k: 10k	Značka	Celý název	Hodnota
210	KiB	kibibajt	1 024
220	MiB	mebibajt	1 048 576
230	GiB	gibibajt	1 073 741 824
240	TiB	tebibajt	1 099 511 627 776
250	PiB	pebibajt	1 125 899 906 842 624
260	EiB	exbibajt	1 152 921 504 606 846 976
270	ZiB	zibibajt	1 180 591 620 717 411 303 424
280	YiB	yobibajt	1 208 925 819 614 629 174 706 176
103	KB	kilobajt	1 000
106	MB	megabajt	1 000 000
109	GB	gigabajt	1 000 000 000
1012	TB	terabajt	1 000 000 000 000
1015	PB	petabajt	1 000 000 000 000 000
1018	EB	exabajt	1 000 000 000 000 000 000
1021	ZB	zettabajt	1 000 000 000 000 000 000 000
1024	YB	yottabajt	1 000 000 000 000 000 000 000 000

Přehled násobných jednotek

Jednotka	Značka	B	kB	KiB	MB	MiB	GB	GiB	TB	TiB
Kilobajt	kB	1000	1	~0,9766
Kibibajt	KiB	1024	1,024	1
Megabajt	MB	1 000 000	1000	~976,6	1	~0,9537
Mebibajt	MiB	1 048 576	~1048,6	1024	1,049	1
Gigabajt	GB	109	1 000 000 976 562,5	1000	953,7	1	~0,9313
Gibibajt	GiB	~1,074·109	~1 073 742	1 048 576	~1073,7	1024	1,074	1
Terabajt	TB	1012	109	~0,9766·109	1 000 000	~953 674,3	1000	931,3	1	~0,9095
Tebibajt	TiB	~1,1·1012	~1,1·109	~1,074·109	~1 099 512	1 048 576	~1099,5	1024	~1,1	1

Binární a hexadecimální soustava, převody čísel BIN-HEX-DEC

Binární (dvojková) soustava

Binární soustava je číselná soustava, která používá pouze dva symboly: 0 a 1. Používá se ve všech moderních digitálních počítačích, neboť její dva symboly (0 a 1) odpovídají dvěma jednoduše rozdělitelným stavům elektrického obvodu (vypnuto a zapnuto), popřípadě nepravdivosti či pravdivosti výroku. Číslo zapsané v dvojkové soustavě se nazývá binární číslo.

Příklad čísla, zapsaného v binární soustavě
Rozepsané číslo	1	0	1	0
Násobeno	23	22	21	20
Rozepsaný násobek	8	4	2	1
V desítkové soustavě	10

Hexadecimální (šestnáctková) soustava

Hexadecimální čísla se zapisují pomocí číslic '0', '1', '2', '3', '4', '5', '6', '7', '8' a '9' a písmen 'A', 'B', 'C', 'D', 'E' a 'F', přičemž písmena 'A'–'F' reprezentují cifry s hodnotou 10–15). Čísla v tomto zápisu se obvykle označují písmenem H připojeným k číslu v dolním indexu. Např. 3F7H reprezentuje hodnotu, které v desítkové soustavě odpovídá číslu 3×162 + 15×161 + 7×160 = 1015.

Díky jednoduchému vzájemnému převodu mezi šestnáctkovou a dvojkovou soustavou, se hexadecimální zápis čísel často používá v oblasti informatiky, například pro adresy v operační paměti počítače.

Převody čísel

Převod šestnáctkových čísel na dvojkové

Převod čísla z hexadecimální soustavy do soustavy dvojkové (binární) je usnadněn díky tomu, že číslo 16 je mocninou čísla 2 (24 = 16). Postup převodu je následovný. Rozdělíme byte reprezentovaný dvěma šestnáctkovými čísly na nibbly (1⁄2 bytu − 1 písmeno) a každý nibbl převedeme pomocí následující tabulky do jeho dvojkové (binární) reprezentace.

Šestnáctkové číslo	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
Dekadické číslo	0	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15
Binární číslo	0000	0001	0010	0011	0100	0101	0110	0111	1000	1001	1010	1011	1100	1101	1110	1111

Po převodu opět spojíme nibbly (teď již ve dvojkové (binární) reprezentaci) do jednoho bytu (teď již ve dvojkové (binární) reprezentaci).

Převod z dvojkové soustavy do šestnáctkové

Algoritmus převodu je přesně opačný, než u převádění HEX do binární soustavy. Nejprve rozdělíme byty na nibbly, které pomocí výše uvedené tabulky převedeme na jednotlivé číslice v hexadecimální soustavě, které spojíme dohromady.

Převod celých desítkových čísel na šestnáctkové

Celá desítková čísla můžeme převádět na šestnáctková například pomocí postupného dělení šestnácti a sepisování zbytku po dělení.

Mějme například číslo x = (15119)10 v dekadické soustavě. Převod provádíme tak, že číslo x dělíme šestnácti a výsledek (podíl) píšeme v celých číslech. Při dělení vzniká zbytek, který si napíšeme. Vzniklý podíl opětovně dělíme šestnácti a zbytek zapisujeme, dokud nedostaneme nulu. Když přečteme zbytky v obráceném pořadí jako šestnáctkové číslice, dostáváme šestnáctkové číslo:

15119 / 16	= 944	zbytek 15	(F)16
944 / 16	= 59	zbytek 0	(0)16
59 / 16	= 3	zbytek 11	(B)16
3 / 16	= 0	zbytek 3	(3)16

Když přepíšeme zbytky v opačném pořadí, dostaneme šestnáctkové číslo 3B0F16.

Znakové sady (ASCII, Windows-1250, ISO-8859-2, UTF-8)

Znaková sada nebo také kódová stránka v informační technologii je kód, který každému znaku (abecedy) přiřazuje určité číslo (bajt, sekvenci elektrických pulzů ap.). Výraz sada odráží to, že obsahuje kód pro určitou množinu znaků (např. obsahuje latinku bez nebo s určitými diakritickými znaménky), kód všech existujících znaků zahrnuje standard Unicode využívaný i moderním kódováním UTF-8. Převod textu do posloupnosti (sekvence) čísel a zpět slouží pro ukládání textu v počítači, jeho přenos telekomunikačními sítěmi apod.

ASCII

ASCII je anglická zkratka pro American Standard Code for Information Interchange („americký standardní kód pro výměnu informací“). V podstatě jde o kódovou tabulku, která definuje znaky anglické abecedy a jiné znaky používané v informatice. Jde o historicky nejúspěšnější znakovou sadu, z které vychází většina současných standardů pro kódování textu přinejmenším v euro-americké zóně. Veškeré moderní znakové sady jsou s ASCII interoperabilní v rozsahu 0-127, tedy další znaky jsou v rozsahu 128-256.

Prvních 32 znaků ASCII se nazývá kontrolní, a význam mnoha z nich je spíše historický, neboť ASCII původně ovládalo dálnopisy. V současnosti se hlavně používají tyto:

SPACE

NEWLINE FEED

posun o sloupec dolů, s výjimkou textových souborů UNIX, kde značí nový řádek

CARRIAGE RETURN

návrat na začátek řádku

BACKSPACE

ESCAPE

ASCII tabulka

Windows-1250

Windows-1250, někdy také CP-1250, je znaková sada používaná operačním systémem Microsoft Windows pro reprezentaci textů ve středoevropských jazycích používajících latinku – např. pro albánštinu, chorvatštinu, češtinu, polštinu, rumunštinu, slovenštinu a maďarštinu. Windows-1250 se podobá sadě ISO 8859-2 — obsahuje všechny její tisknutelné znaky (a ještě několik navíc), ale několik z nich je na jiných místech (na rozdíl od Windows-1252, kde jsou všechny tisknutelné znaky na stejném místě jako v ISO 8859-1).

ISO-8859-2

ISO-8859-2, nebo také Latin-2 (pro odlišení od znakové sady CP852, která se používá v MS-DOS, a která se označuje jako Latin 2 se dá sada ISO-8859-2 označit jako ISO Latin 2 a CP852 jako PC Latin 2 nebo IBM Latin 2) je znaková sada, která obsahuje 191 znaků latinky kódovaných pomocí 8 bitů a byla poprvé publikována v roce 1987.

Srovnání Windows-1250 a ISO-8859-2

ISO 8859-2 se velmi podobá znakové sadě Windows-1250, která vznikla později. Kódování Windows-1250 zavedené firmou Microsoft obsahuje všechny tisknutelné znaky ISO 8859-2, ale některé z nich na jiných místech. V češtině je tento rozdíl nejmarkantnější u písmen Š, Ť a Ž.

UTF-8

UTF-8 je nejčastějším zápisem znakové sady Unicode. Unicode je narozdíl od výše zmíněných znakových sad určeno pro všechny světové jazyky najednou, protože znakům přiřazuje čísla až do 16 miliónů (zapisuje se většinou dvěma bajty). Zápis UTF-8 byl navržen pro zpětnou kompatibilitu s ASCII, se kterým tak má totožný způsob kódování 1-bajtových znaků. UTF-8 používá proměnnou délku znaku, a to od 1 bajtu až do 6 bajtů.

V dnešní době je UTF-8 dominantní znakovou sadu používanou na World Wide Web. (Používá ji více než 50% všech webových stránek. World Wide Web Consortium (W3C) doporučuje používat primárně UTF-8 a Internet Mail Consortium (IMC) doporučuje, aby všichni e-mailoví klienti uměli zobrazit a vytvářet e-maily kódované v UTF-8.).

Problémem UTF-8 je, že nelze přímo najít například 5. znak. Je potřeba postupně projít celý řetězec a počítat znaky, což dělá UTF-8 nepraktické pro reprezentaci řetězců při programování. Mnoho jazyků proto používá jiné kódování, například UTF-16, což tento problém ovšem řeší jen částečně. (Také je zde problém s definicí znaku kvůli kombinujícím znaků Unicode).