Převody mezi různými soustavami

Vzhledem k tomu, že většina z nás má dvě ruce a na každé z nich 5 prstů, používáme k počítání desítkovou soustavu. Tato volba je dána historickým vývojem - jednou ze zajímavých alternativ je i dvacítková soustava.

Vzhledem k tomu, že v počítači jsou na hardwarové úrovni čísla reprezentována v soustavě dvojkové, je užitečné o ní něco vědět, když chceme programovat. Například nám to může poskytnout představu o tom, jaký je rozdíl mezi 32-bitovou 64-bitovou architekturou.

2 → 10

Zde pouze jeden ilustrační obrázek.

10 → 2

V praxi jsme si vyzkoušeli následující algoritmus:

convert(M,N) { M - prevadene cislo, N - zaklad cilove soustavy }
vystup: retezec, ktery reprezentuje M v soustave o zakladu N

1. result = ''
2. if M < N: result='M' + result, Stop.
3. S = M mod N
4. result = 'S' + result
5. M = M div N
6. Goto 2.

Algoritmus není v žádném konkrétním programovacím jazyce. Symboly mod a div reprezentují operaci modulo a celočíselné dělení. Na řádku 2. je použita jednoduchá podmínka a na řádku 6. je řídící příkaz skoku. Výpočet probíhá odshora dolů po řádcích a končí v okamžiku, kdy dosáhneme symbolu Stop.

Způsob převodu čísel mezi soustavami o základech 2 a 10 probraný na cvičení lze snadno modifikovat pro převod mezi libovolnými dvěma soustavami. Zkuste si převést třeba číslo 47889478 z desítkové soustavy do soustavy o základu 36.

Ο, Ω, θ ο, ω - Big O notation

Notace používající výše zmíněné symboly se používá při porovnávání funkcí. Na příštím cvičení si ještě procvičíme několik příkladů. Pro další studium doporučuji přečíst si něco málo na internetu. Definice ze cvičení zde uvádím pro referenci.