Hlavní strana -> Programování v C -> Číselné soustavy

Číselné soustavy

A je tady konečně dlouho, opravdu dlouho očekávaný článek, a to o číselných soustavách. Proč? Jednoduše proto, že když už je jednou počítač, tak asi pracuje s čísly a pokud chceme rozumět počítači, tak musíme rozumět číslům. Číselných soustav je několik. Nejznámější je samozřejmě desítková (dekadická) číselná soustava. Desítková snad proto, že člověk má deset prstů - co já vím? Dále tady ještě existuje soustava dvojková (binární), šestnáctková (hexadecimální) a osmičková (oktálová?). Možná existují i jiné, ale já znám jen tyto.

Teď jak se s nimi počítá? A proč se jmenují tak, jak se jmenují? Jmenují se podle toho, jaký je jejich základ. Desítková má základ deset a jedno číslo dokáže popsat deset stavů (říkejme tomu stav). Počítá se i nula. Pokud je třeba pracovat s číslem větším, tak se musí přidat další řád a nižší řád se vrátí na začátek. Je to jako tachometr v autě. Počet stavů, které je možno číslem vyjádřit je tedy základ umocněný počtem cifer. Jednociferné číslo v desítkové soustavě dokáže popsat deset na prvou stavů. Dvouciferné deset na druhou stavů. Maximální hodnota, kterou lze číslem o určitém základu a určitém počtu cifer vyjádřit je tedy základ umocněný počtem cifer mínus jedna.

Desítková má tedy základ 10 a počítat se s ní učíme každý už odmalička.
Používá znaků 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Jedna cifra = 10 stavů (nula je taky stav)
Dvě cifry = 100 stavů
Tři cifry = 1000 stavů

Osmičková má základ 8. Moc se nepoužívá.
Používá znaků 0, 1, 2, 3, 4, 5, 6, 7.
Jedna cifa = 8 stavů
Dvě cifry = 64 stavů
Tři cifry = 512 stavů

Šestnáctková (hexadecimální) soustava má základ 16.
Používá znaků 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Jedna cifra = 16 stavů
Dvě cifry = 256 stavů
Tři cifry = 4096 stavů

Dvojková (binární) soustava má základ 2. Používají ji počítače. Jednoduše proto, že proud neprochází nebo prochází.
Používá znaků 0, 1.
Jedna cifra = 2 stavy
Dvě cifry = 4 stavy
Tři cifry = 8 stavů

Čísla ve dvojkové soustavě se obvykle zapisují vždy po 8 cifrách, protože tady se jedna cifra nazývá bit a osmiciferné číslo se nazývá byte. Už jste doma žejo? Bity a bajty zná přece každý, kdo kdy přišel do styku s výpočetní technikou.

Teď k tomu počítání. Předvedu vám to na desítkové soustavě. Číslo se dá vyjádřit jako součet násobků mocnin základu. Asi takto:

456 (dec) = 4*10^2 + 5*10^1 + 6*10^0 = 4*100 + 5*10 + 6*1 = 456 (dec)

V ostatních soustavách je to stejné. V osmičkové:

456 (oct) = 4*8^2 + 5*8^1 + 6*8^0 = 4*64 + 5*8 + 6*1 = 302 (dec)

V šestnáctkové:

BAF (hex) = 11*16^2 + 10*16^1 + 15*16^0 = 11*256 + 10*16 + 15 = 2991 (dec)

V binární:

101 (bin) = 1*2^2 + 0*2^1 + 1*2^0 = 1*4 + 0*2 + 1*1 = 5 (dec)

Převody mezi číselnými soustavami
DesítkověOsmičkověŠestnáctkověBinárně
0000
1111
22210
33311
444100
555101
666110
777111
81081000
91191001
1012A1010
1113B1011
1214C1100
1315D1101
1416E1110
1517F1111
16201010000

Zpět

Programování v C | CZ 175/477 | Mapa stránek
Bc. Petr Klimánek, student Ostravské univerzity v Ostravě