Vědět víc - vzdělávací portál pro zvídavé


Lab 3: Převody mezi soustavami

Slide

Převod mezi dvojkovou, osmičkovou a šestnáctkovou soustavou je poměrně jednoduchý.

Na drobné problémy narazíme při převodu z desítkové soustavy do soustavy jiné. V tomto případě budeme muset trochu počítat.

Převod z desítkové soustavy se provádí tak, že postupně dělíme číslo základem soustavy. Počítáme v desítkové soustavě tak, jak jsme zvyklí.

Po vydělení si zapíšeme zbytek po dělení (dělíme celočíselně se zbytkem). Dále pokračujeme s podílem celočíselného dělení, a tak pokračujeme až do chvíle, kdy není co dělit.

Zbytky po dělení, které jsme si postupně zapisovali tvoří číslice čísla v cílové číselné soustavě (protože dělíme základem soustavy, nemohou být zbytky, tedy číslice, nikdy větší než základ, a tedy se skutečně jedná o hledané číslice).

Zbytky, které postupně získáme pak tvoří číslo v cílové soustavě (tedy té, do které převádíme). Musíme je však zapisovat v opačném pořadí, tedy první zjištěný zbytek tvoří jednotky - číslici úplně vpravo.

Proč je postup takový, jaký je, zde nebudeme dokazovat, ti bystřejší na to jistě přijdou sami. Ostatním bude stačit si postup zapamatovat.

Jako to bude vypadat v programu?

Napište tento program:

PRINT "Prevod z desitkove do dvojkove soustavy"
DO
    INPUT "Zadejte cislo mezi 0 a 65535 =>>", cislo
LOOP UNTIL cislo < 65535 AND cislo > 0
PRINT "Prevedene cislo vypada takto:"
PRINT "(cislice je treba zapsat v obracenem poradi)"
DO
    zb = cislo MOD 2
    PRINT zb;
    cislo = cislo \ 2
LOOP UNTIL cislo = 0

Dvojkové číslice jsou vypsány v opačném pořadí. Samozřejmě bychom je mohli “srovnat”, k tomu ale budeme potřebovat něco navíc. Číslice přerovnáme v další lekci.

Nyní pojďme program upravit na osmičkovou soustavu. Úprava bude jednoduchá. Zaměníme pouze základ soustavy - místo dvojky použijeme osmičku. A pochopitelně změníme úvodní text, aby vše dávalo smysl.

Program tedy bude vypadat takto:

PRINT "Prevod z desitkove do osmickove soustavy"
DO
    INPUT "Zadejte cislo mezi 0 a 65535 =>>", cislo
LOOP UNTIL cislo < 65535 AND cislo > 0
PRINT "Cislo v osmickove soustave vypada takto:"
PRINT "(cislice je treba zapsat v obracenem poradi)"
DO
    zb = cislo MOD 8
    PRINT zb;
    cislo = cislo \ 8
LOOP UNTIL cislo = 0

Windows kalkulačka

  • Nejprve přepneme kalkulačku do programátorského režimu:
    • Vyberte nabídku vlevo nahoře (1)
    • V sekci Kalkulačka vyberte Programátorská (2)


  •  Nyní kalkulačka umožňuje pracovat v různých soustavách a provádět převody.
    • (1) - zde volíme, jaká soustava je zobrazena na displeji; podle volby se upravuje i klávesnice kalkulačky
    • (2) - přepínač mezi klávesnicí a nastavováním jednotlivých bitů
    • (3) - přepínač, který určuje, s kolika bity pracujeme (je to nejlépe vidět, pokud se přepneme na nastavování jednotlivých bitů


  • Ověření provedeme takto:
    • Přepněte se do desítkové soustavy (DEC v části (1))
    • Napište číslo
    • Podívejte se, jak vypadá v jiných soustavách - opět v části (1)