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