Číselné soustavy

Číselné soustavy a jejich převody

Co jsou to číselné soustavy?

Číselná soustava je způsob, jakým zapisujeme čísla pomocí znaků (číslic). Zásadně je dělíme na dva typy:

Nepoziční soustavy Poziční soustavy
Hodnota číslice je vždy stejná, ať stojí kdekoliv. Hodnota číslice závisí na její pozici (řádu) v zápisu čísla.
Příklad: Římské číslice (I, V, X, L, C, M). Znak "X" znamená vždy 10, ať je v zápisu XX (20) nebo IX (9). Příklad: Naše desítková soustava. Číslice "5" v čísle 51 znamená padesát, ale ve 105 znamená jen pět.
Těžko se v nich počítá (zkuste násobit římskými číslicemi). Díky "pozicím" můžeme používat algoritmy pro sčítání a násobení pod sebou.

Základ poziční soustavy (Radix)

Základ soustavy nám říká, kolik různých znaků (číslic) soustava používá, a určuje "váhu" jednotlivých pozic (mocniny základu).

Převod: Desítková ➔ Dvojková

Číslo postupně dělíme základem (číslem 2). Zapisujeme si celočíselné výsledky a zbytky. Postup opakujeme, dokud nedojdeme k nule. Výsledné binární číslo přečteme ze zbytků odspoda nahoru.

Příklad: Převeďte číslo 1310 do binární soustavy.

13 : 2 = 6   (zbytek 1) ⬆
6 : 2 = 3    (zbytek 0) ⬆
3 : 2 = 1    (zbytek 1) ⬆
1 : 2 = 0    (zbytek 1) ⬆ (Čteme zespodu)

Výsledek: 11012

Převod: Dvojková ➔ Desítková

Každá pozice v binárním čísle má svou "váhu" (mocninu dvojky, zprava do leva: 1, 2, 4, 8, 16...). Vezmeme jedničky, vynásobíme je jejich váhou a vše sečteme.

Příklad: Převeďte číslo 10112 do desítkové soustavy.

Váhy pozic (zprava): 20=1, 21=2, 22=4, 23=8

Výpočet: (1 × 8) + (0 × 4) + (1 × 2) + (1 × 1)
Výpočet: 8 + 0 + 2 + 1 = 1110

Procvičování: Dvojková soustava

Převod: Desítková ➔ Šestnáctková

Princip je úplně stejný jako u dvojkové, jen dělíme číslem 16. Zbytky větší než 9 musíme převést na písmena (10=A, 11=B, 12=C, 13=D, 14=E, 15=F).

Příklad: Převeďte číslo 25410 do hexadecimální soustavy.

254 : 16 = 15   (zbytek 14 = E) ⬆
15 : 16 = 0     (zbytek 15 = F) ⬆

Výsledek: FE16

Převod: Šestnáctková ➔ Desítková

Opět stejný princip, ale násobíme mocninami 16 (zprava: 1, 16, 256...). Písmena převedeme na jejich číselnou hodnotu.

Příklad: Převeďte číslo 2A16 do desítkové soustavy.

Váhy pozic: 160=1, 161=16.
Znaky: A = 10, 2 = 2.

Výpočet: (2 × 16) + (10 × 1)
Výpočet: 32 + 10 = 4210

Procvičování: Šestnáctková soustava

Přímý převod pomocí Nibblů (BIN ↔ HEX)

Dvojková a šestnáctková soustava mají k sobě velmi blízko. Platí totiž matematický vztah, že 16 = 24.

To v praxi znamená, že přesně 4 bity (tzv. nibble) dokáží reprezentovat hodnoty od 0 do 15. A to je přesně rozsah jedné číslice v šestnáctkové soustavě! Můžeme tak čísla "překládat" znak po znaku bez nutnosti složitého dělení či násobení přes desítkovou soustavu.

HEX 0 1 2 3 4 5 6 7 8 9 A B C D E F
BIN 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
HEXBIN
00000
10001
20010
30011
40100
50101
60110
70111
HEXBIN
81000
91001
A1010
B1011
C1100
D1101
E1110
F1111
Příklad: Dvojková ➔ Šestnáctková (Zprava doleva)

Zadání: 1101011102
1. Rozdělíme na čtveřice zprava doleva: 1 1010 1110
2. Krajní levou skupinu doplníme nulami zleva na 4 bity: 0001 1010 1110
3. Přeložíme každou čtveřici podle tabulky: 1 A E
Výsledek: 1AE16
Příklad: Šestnáctková ➔ Dvojková (Zleva doprava)

Zadání: 4F16
1. Přeložíme znaky na přesně 4 bity: 4 = 0100, F = 1111
2. Spojíme: 01001111
3. Případné nuly úplně vlevo můžeme smazat: 1001111
Výsledek: 10011112

Procvičování: Převody pomocí nibblů

HEX 0 1 2 3 4 5 6 7 8 9 A B C D E F
BIN 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
HEXBIN
00000
10001
20010
30011
40100
50101
60110
70111
HEXBIN
81000
91001
A1010
B1011
C1100
D1101
E1110
F1111