Číselné soustavy a jejich převody
Čí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. |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Používají ji lidé (máme 10 prstů).0, 1. Používají ji počítače (tranzistor je vypnutý/zapnutý).0-9 a písmena A, B, C, D, E, F (kde A=10, F=15). Slouží pro zkrácení zápisu dlouhých binárních čísel (např. barvy v CSS: #FFFFFF).Čí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.
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.
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).
Opět stejný princip, ale násobíme mocninami 16 (zprava: 1, 16, 256...). Písmena převedeme na jejich číselnou hodnotu.
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 |
| HEX | BIN |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| HEX | BIN |
|---|---|
| 8 | 1000 |
| 9 | 1001 |
| A | 1010 |
| B | 1011 |
| C | 1100 |
| D | 1101 |
| E | 1110 |
| F | 1111 |
1 1010 11100001 1010 11101 A E0100, F = 1111010011111001111| 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 |
| HEX | BIN |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| HEX | BIN |
|---|---|
| 8 | 1000 |
| 9 | 1001 |
| A | 1010 |
| B | 1011 |
| C | 1100 |
| D | 1101 |
| E | 1110 |
| F | 1111 |