C – Výstup čísla v šestnáctkové a osmičkové soustavě

Následující program napsaný v jazyce C bude mít za úkol načíst od uživatele zadané číslo v desítkové soustavě a následně jej zpětně vypsat, použije se však jiný číselný základ. Konkrétně proto získáme údaj v šestnáctkovém a osmičkovém formátu.

Programování zahájíme připojením dvou nezbytných knihoven (konkrétně stdio.h a s stdlib.h). O toto poslání se postará preprocesor jazyka C v rámci direktivy #include značící vložení zdrojového kódu z jiného souboru (v našem případě dvou standardních odladěných knihoven). Pokračovat pochopitelně budeme hlavní funkcí main s návratovou hodnotou typu int. V tomto těle již začíná samotná tvorba programu.

Na úvod si připravíme proměnnou, která uchová uživatelem definovaný vstup. Vystačíme si s celým číslem, a proto spoléháme na datový typ int (integer). Následně funkce printf zajistí výpis první informační hlášky vyzývající k vložení údaje, jenž bude následně opětovně zobrazen ve zmíněných soustavách. Jako parametr předáme řetězec, respektive jednorozměrné pole znaků typu char. Povšimněte si především finální části. Díky \n dosáhneme nového řádku, což výrazně zpřehlední vypsané podrobnosti. Následuje načtení čísla z klávesnice. Této mise se zhostí funkce scanf, které předáváme dva parametry. Ten první v podstatě udává datový typ. Za symbolem procent následuje písmeno i, jenž poukazuje na integer. Obdobně lze použít například i %f zastupující float, tedy desetinné číslo. Životně důležitý úkol zastává druhý parametr konkretizující proměnou, jenž si zapamatuje vstup pro další práci. Protože se tato informace zanese na konkrétní místo v paměti, vyžádáme si ji v rámci znaku & (ampersand).

Finální výpis provedeme opět díky printf, kdy kýžený formát specifikuje %o (osmičková soustava) a %x (šestnáctkový nebo také hexadecimální formát). Splnění požadavku na návratovou hodnotu zajistí return 0.

Hotový zdrojový kód vypadá takto:

#include <stdio.h>

#include <stdlib.h>

 

int main()

{

int vstup;

printf(„Zadejte cislo: \n“);

scanf(„%i“,&vstup);

 

printf(„Bylo zadano cislo %i \n“,vstup);

printf(„Prevod do osmickove soustavy: %o \n“,vstup);

printf(„Prevod do sestnactkove soustavy: %x \n“,vstup);

 

return 0;

}

O Ondřej Směták

Student, který se intenzivně zajímá o oblast IT a to především z pohledu webmastera a programátora GUI aplikací.