Přeskočit na hlavní obsah

Čí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.

soustavadalší názevzákladznačenípoužívané číslice
desítkovádecimální10bez prefixu: 1730 1 2 3 4 5 6 7 8 9
dvojkovábinární2prefix 0b: 0b101011010 1
šestnáctkováhexadecimální, hex16prefix 0x: 0xAD0 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.

pozicemocninaváha
72^7128
62^664
52^532
42^416
32^38
22^24
12^12
02^01

Číslo 0b10101101 převedeme do desítkové soustavy tak, že sečteme váhy na místech, kde je 1.

Rozklad čísla 0b10101101
2^7
1
128
+ 128
2^6
0
64
+ 0
2^5
1
32
+ 32
2^4
0
16
+ 0
2^3
1
8
+ 8
2^2
1
4
+ 4
2^1
0
2
+ 0
2^0
1
1
+ 1
128 + 32 + 8 + 4 + 1= 173

Spodní index říká, v jaké soustavě je číslo zapsané.

zápissoustava
173desítková
0b10101101dvojková
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áhavejde se?zbytek
128ano45
64ne45
32ano13
16ne13
8ano5
4ano1
2ne1
1ano0

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.

0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
A
1010
10
B
1011
11
C
1100
12
D
1101
13
E
1110
14
F
1111
15

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í.

Z dvojkové do šestnáctkové soustavy
1010
A
1101
D
0b10101101=0xAD

Opačný převod:

Ze šestnáctkové do dvojkové soustavy
1111
F
0011
3
0b11110011=0xF3

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.

Rozklad čísla 0x2A7
16^2
2
2 × 256
+ 512
16^1
A
10 × 16
+ 160
16^0
7
7 × 1
+ 7
2 × 16^2 + 10 × 16^1 + 7 × 16^0= 679
Kontrola přes dvojkovou soustavu

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.

Jedno číslo třemi způsoby

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.

hex 0
hex 0
hex A
hex D
dvojkově0000 0000 1010 1101
šestnáctkově0x00AD
desítkově173
součet vah128 + 32 + 8 + 4 + 1

Byte, nibble a bit

V číslicové technice se často používají tyto velikosti:

názevvelikostpoznámka
bit1 bitjedna hodnota 0 nebo 1
nibble4 bityjedna šestnáctková číslice
byte8 bitůdvě šestnáctkové číslice

Příklad:

Byte 0xAD jako dva nibbly
1010
A
1101
D
0b10101101=0xAD

0xAD má dva nibbly: horní nibble A a dolní nibble D.

S jednotlivými bity se potom pracuje pomocí bitových operací.