Převody mezi číselnými soustavami

Téma: Procvičení učiva I

Procvičované učivo: dynamická alokace paměti, práce s textem, funkce, cykly

Napište v jazyku C funkci char *preved(unsigned int z1, unsigned int z2, char *cislo) pro převádění celých nezáporných čísel mezi číselnými soustavami. Vstupními parametry požadované funkce jsou základ číselné soustavy z1, ze které se převádí ("vstupní" číselná soustava), základ soustavy z2, do které se převádí ("výstupní" číselná soustava), a textový řetězec cislo odpovídající číslu ve "vstupní" číselné soustavě. Výstupem funkce je textový řetězec odpovídající zadanému číslu vyjádřenému ve "výstupní" číselné soustavě nebo konstanta NULL, pokud textový řetězec cislo nebyl korektním zadáním čísla ve "vstupní" číselné soustavě (v řetězci se vyskytly jiné znaky než cifry dané soustavy).

Pro výpis číslic s hodnotami většími než 9 použijte velká písmena anglické abecedy. Předpokládejte základy číselných soustav v rozmezí od 2 do 36 a hodnotu vstupního čísla (textového řetězce) v rozsahu datového typu unsigned long.

Příklad výstupu:

10111 v soustave o zakladu 2 odpovida 23 v soustave o zakladu 10
1202101 v soustave o zakladu 3 odpovida 1671 v soustave o zakladu 9
26A1B800A v soustave o zakladu 12 odpovida 3F0J48I v soustave o zakladu 26

Povolené knihovny: stdio.h, stdlib.h


Creative Commons License Sbírka úloh z jazyka C. © Katedra informatiky Univerzity Palackého v Olomouci, 2009.
Projekt byl vytvořen za podpory grantu FRVŠ 2061/2009/G1.