Číselné soustavy
Číselná soustava určuje, kolik používáme číslic a jakou hodnotu má pozice číslice v zápisu.
Desítková soustava má základ 10.
Dvojková soustava má základ 2.
Šestnáctková soustava má základ 16.
| soustava | další název | základ | značení | používané číslice |
|---|---|---|---|---|
| desítková | decimální | 10 | bez prefixu: 173 | 0 1 2 3 4 5 6 7 8 9 |
| dvojková | binární | 2 | prefix 0b: 0b10101101 | 0 1 |
| šestnáctková | hexadecimální, hex | 16 | prefix 0x: 0xAD | 0 1 2 3 4 5 6 7 8 9 A B C D E F |
Desítková soustava se běžně neoznačuje,
protože ji bereme jako výchozí.
Když napíšeme 173,
myslí se desítkové číslo.
Dvojkovou soustavu v této wiki značíme prefixem 0b.
Šestnáctkovou soustavu značíme prefixem 0x.
Dvojková soustava
Dvojková soustava,
také binární soustava,
má základ 2.
Váhy pozic jsou mocniny dvojky.
| pozice | mocnina | váha |
|---|---|---|
| 7 | 2^7 | 128 |
| 6 | 2^6 | 64 |
| 5 | 2^5 | 32 |
| 4 | 2^4 | 16 |
| 3 | 2^3 | 8 |
| 2 | 2^2 | 4 |
| 1 | 2^1 | 2 |
| 0 | 2^0 | 1 |
Číslo 0b10101101 převedeme do desítkové soustavy tak,
že sečteme váhy na místech,
kde je 1.
Spodní index říká, v jaké soustavě je číslo zapsané.
| zápis | soustava |
|---|---|
173 | desítková |
0b10101101 | dvojková |
0xAD | šestnáctková |
Převod z desítkové do dvojkové
Jedna možnost je hledat mocniny dvojky, které se do čísla vejdou.
Převeďme 173:
| váha | vejde se? | zbytek |
|---|---|---|
| 128 | ano | 45 |
| 64 | ne | 45 |
| 32 | ano | 13 |
| 16 | ne | 13 |
| 8 | ano | 5 |
| 4 | ano | 1 |
| 2 | ne | 1 |
| 1 | ano | 0 |
Tam,
kde se váha použila,
zapíšeme 1.
Tam,
kde se nepoužila,
zapíšeme 0.
173 = 128 + 32 + 8 + 4 + 1
173 = 0b10101101
Šestnáctková soustava
Šestnáctková soustava,
také hexadecimální soustava nebo krátce hex,
má základ 16.
Je užitečná hlavně proto,
že jedna šestnáctková číslice odpovídá přesně čtyřem bitům.
Převod mezi dvojkovou a šestnáctkovou soustavou
Binární číslo rozdělíme zprava po čtyřech bitech. Každou čtveřici nahradíme jednou hexadecimální číslicí.
Opačný převod:
Převod šestnáctkové soustavy do desítkové
Hlavní způsob je stejný jako u ostatních pozičních soustav: rozložíme číslo podle vah jeho pozic.
U šestnáctkové soustavy jsou váhy mocniny čísla 16.
Ukážeme si to rovnou na větším čísle 0x2A7.
Číslice A má hodnotu 10.
Převod přes dvojkovou soustavu je také možný, ale je to spíš kontrola nebo pomůcka, když chceme vidět jednotlivé bity. Příklad převodu mezi dvojkovou a šestnáctkovou soustavou je hned výše.
Stejná hodnota může být zapsaná různě. Dvojkový zápis ukazuje jednotlivé bity. Desítkový zápis je běžný pro počítání. Šestnáctkový zápis je krátký a dobře se převádí po čtveřicích bitů.
V následující ukázce jde pořád o jedno šestnáctibitové číslo. Kliknutím na bit se změní jeho hodnota a vedle se přepočítá zápis ve všech třech soustavách.
Byte, nibble a bit
V číslicové technice se často používají tyto velikosti:
| název | velikost | poznámka |
|---|---|---|
| bit | 1 bit | jedna hodnota 0 nebo 1 |
| nibble | 4 bity | jedna šestnáctková číslice |
| byte | 8 bitů | dvě šestnáctkové číslice |
Příklad:
0xAD má dva nibbly:
horní nibble A
a dolní nibble D.
S jednotlivými bity se potom pracuje pomocí bitových operací.