Číselné soustavy
- co to jsou číselné soustavy
- rozdělení číselných soustav (poziční, nepoziční)
- obecný zápis čísla v poziční číselné soustavě
- binární a hexadecimální soustava
- nibl
- převody z desítkové do libovolné číselné soustavy, princip, příklad
- převod z libovolné číselné soustavy do desítkové, princip, příklad
Obsah |
10. Číselné soustavy
Číselná soustava
- číselná soustava je způsob reprezentace čísel
- zápis čísla dané soustavy je posloupností symbolů, které se nazývají číslice
- podle způsobu určení hodnoty čísla z dané reprezentace rozlišujeme dva hlavní druhy číselných soustav: poziční číselné soustavy a nepoziční číselné soustavy
Poziční číselné soustavy
- poziční soustavy jsou charakterizovány tzv. základem neboli bází (anglicky radix, značí se r), což je obvykle kladné celé číslo definující maximální počet číslic, které jsou v dané soustavě k dispozici
- v běžně používaných číselných soustavách se jednotlivé číslice zapisují za sebe, nijak se neoddělují
Decimální (desítková, dekadická) soustava
- základem je číslo 10 (r = 10), toto je pravděpodobně odvozeno od počítání s deseti prsty na rukou
- pro zápis čísel používá symboly 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- je dnes nejužívanější číselná soustava jak v běžném životě, tak ve vědě a technice
1000 | 100 | 10 | 1 |
103 | 102 | 101 | 100 |
4 | 2 | 8 | 6 |
4286D = 4·103 + 2·102 + 8·101 + 6·100 = 4·1000 + 2·100 + 8·10 + 6 = 4286D
Binární (dvojková) soustava
- základem je číslo 2 (r = 2)
- pro zápis čísel používá symboly 0 a 1
- používá se ve všech moderních digitálních počítačích a elektronice, 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 (false a true)
8 | 4 | 2 | 1 |
23 | 22 | 21 | 20 |
1 | 1 | 0 | 1 |
1101B = 1· 23 + 1· 22 + 0· 21 + 1· 20 = 8 + 4 + 0 + 1 = 13D
Hexadecimální (šestnáctková) soustava
- základem je číslo 16 (r = 16)
- pro zápis čísel používá symboly 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15)
- písmena A - F představují (reprezentují) cifry s hodnotou 10 - 15
- 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, pro zápis barvy v HTML kódu nebo IPv6 adresaci
- je to v podstatě zkrácená forma zápisu dvojkové soustavy
256 | 16 | 1 |
162 | 161 | 160 |
4 | B | E |
4BEH = 4· 162 + 11· 161 + 14· 160 = 4· 256 + 11·16 + 14 = 1214D
Další poziční číselné soustavy
- Čtyřková – polovina bajtu = 4 bity, 16 stavů (použití v osmibitových počítačích a packed BCD)
- Sedmičková – dny v týdnu
- Osmičková – (Oktalová) dříve se používala pro adresaci
- Dvanáctková – hodiny (dříve též jednotka tucet)
- Šedesátková – nejstarší číselná soustava, snadná dělitelnost čísly 2,3,4,5,6, čas (sekundy) a geometrie (dříve též jednotka kopa)
Nibl
- nibl je polovina bajtu tj. 4 bity
Příklad:
- číslo 1010 1101B je číslo o velikosti 1B(bajtu) tj. 8b(bitů), z toho vyplývá, že je složeno ze dvou niblů
- první nibl je 1010 a druhý 1101, nibl obsahuje 4 číslice, protože každá z číslic představuje(reprezentuje) 1 bit
Nepoziční číselné soustavy
- hodnota číslice není dána jejím umístěním v dané sekvenci číslic
- stačí sečíst hodnoty jednotlivých číslic
- výhody: jednoduché sčítání a odečítání
- nevýhody: dlouhý zápis čísel, neobsahuje symbol pro nulu a záporná čísla
- Římské číslice, Egyptské číslice, Řecké číslice, Etruské číslice
Příklad:
- Pokud: A = 1, B = 10, C = 100, D = 1000
- Pak: AAB = 1 + 1 + 10 = 12; AABBBBCCCCCDDD = 3542
Římské číslice
- způsob zápisu čísel pomocí písmen abecedy
- dnes se tento způsob zápisu čísel používá jen výjimečně
- pro snazší zapamatování se dají používat mnemotechnické pomůcky jako např. Ivan Vedl Xénii Lesní Cestou Do Města (nebo Ivan, Vašek, Xénie Lijí Cín Do Mumie), kde první písmena určují jak jdou římské číslice po sobě
Znak | Hodnota |
---|---|
I | 1 |
IV | 4 |
V | 5 |
IX | 9 |
X | 10 |
XL | 40 |
L | 50 |
XC | 90 |
C | 100 |
CD | 400 |
D | 500 |
CM | 900 |
M | 1000 |
Převody mezi soustavami
Převodní tabulka
Dec | Hex | Bin |
---|---|---|
0 | 0 | 0000 |
1 | 1 | 0001 |
2 | 2 | 0010 |
3 | 3 | 0011 |
4 | 4 | 0100 |
5 | 5 | 0101 |
6 | 6 | 0110 |
7 | 7 | 0111 |
8 | 8 | 1000 |
9 | 9 | 1001 |
10 | A | 1010 |
11 | B | 1011 |
12 | C | 1100 |
13 | D | 1101 |
14 | E | 1110 |
15 | F | 1111 |
Převody z desítkové soustavy
- postupně celočíselně dělíme základem cílové soustavy, dokud nedojdeme k hodnotě nula, přičemž zbytky po dělení v opačném pořadí představují hodnoty číslic v cílové soustavě
Desítková -> Binární
- dělíme dvojkou
- provádíme celočíselné dělení => dělením lichých čísel nám vznikne zbytek
59D = 111011B
59D | 59:2 = 29 | 29:2 = 14 | 14:2 = 7 | 7:2 = 3 | 3:2 = 1 | 1:2 = 0 |
zbytek | 1 | 1 | 0 | 1 | 1 | 1 |
POZOR !!!
- zbytky se zapisují zprava
Malá čísla převedeme z hlavy:
- rychlejší způsob než rozepisování, ikdyž možná trochu obtížnější na pochopení
13D = 1101B
- jelikož víme, že 13 < 16 a 16 (24) je číslo o velikosti 5 bitů, budeme postupovat následovně
- 1.) osmička se do třináctky vejde -> 13 - 8 (23) = 5 -> zapíšeme 1 (1)
- 2.) čtyřka se do pětky vejde -> 5 - 4 (22) = 1 -> zapíšeme 1 (11)
- 3.) dvojka se do jedničky nevejde -> 1 < 2 (21) -> zapíšeme 0 (110)
- 4.) jednička se do jedničky vejde -> 1 - 1 (20) = 0 -> zapíšeme 1 (1101)
- 5.) máme výsledek 1101B
9D = 1001B
- jelikož víme, že 9 < 16 a 16 (24) je číslo o velikosti 5 bitů, budeme postupovat následovně
- 1.) osmička se do devítky vejde -> 9 - 8 (23) = 1 -> zapíšeme 1 (1)
- 2.) čtyřka se do jedničky nevejde -> 1 < 4 (22) -> zapíšeme 0 (10)
- 3.) dvojka se do jedničky nevejde -> 1 < 2 (21) -> zapíšeme 0 (100)
- 4.) jednička se do jedničky vejde -> 1 - 1 (20) = 0 -> zapíšeme 1 (1001)
- 5.) máme výsledek 1001B
Desítková -> Hexadecimální
- dělíme šestnáctkou
- provádíme celočíselné dělení
175D = AFH
175D | 175:16 = 10 | 10:16 = 0 |
zbytek | 15 | 10 |
zbytek | F | A |
POZOR !!!
- zbytky se zapisují zprava
Převody do desítkové soustavy
- sčítáme hodnoty součinů jednotlivých číslic se základem zdrojové soustavy umocněným na pořadové číslo pozice číslice zprava počítáno od nuly
Binární -> Desítková
- Sčítáme mocniny dvojky vynásobené hodnotami binárních číslic
111011B = 1·25 + 1·24 + 1·23 + 0·22 + 1·21 + 1·20 = 32 + 16 + 8 + 4 + 2 + 1 = 59D
Hexadecimální -> Desítková
- sčítáme mocniny šestnácky vynásobené desítkovými hodnotami šestnáctkových číslic
ABCDEFH = 10·165 + 11·164 + 12·163 + 13·162 + 14·161 + 15·160 = 11259375D
6CH = 6·161 + 12·160 = 96 + 12 = 108D
Převody mezi dvojkovou a šestnáctkovou soustavou
Binární -> Hexadecimální
- převádíme z hlavy převodem po čtveřicích binárních číslic – tzv. NIBL (čtveřici sestavujeme zprava)
101110000101001101B = 2E14DH
Bin | 10 | 1110 | 0001 | 0100 | 1101 |
Dec | 2 | 14 | 1 | 4 | 13 |
Hex | 2 | E | 1 | 4 | D |
Hexadecimální -> Binární
- převádíme z hlavy po jednotlivých číslicích a vzniknou nibly. Ty řazeny za sebou dávají výsledné binární číslo
AB37H = 1010101100110111B
Hex | A | B | 3 | 7 |
Dec | 10 | 11 | 3 | 7 |
Bin | 1010 | 1011 | 0011 | 0111 |