Navigace: Hlavní stránka -> Jazyk C -> 07 Podprogramy -> 07.06 Funkce - převod čísla z desítkové do hexadecimální soustavy

MENU

07.06 Funkce - převod čísla z desítkové do hexadecimální soustavy

Zadání:
Sestavte funkci na převod desítkového čísla do hexadecimální soustavy.
Řešení:
Funkce je řešena postupným dělením zadaného desítkového čísla číslem 16 a na základě zbytku tohoto dělení se postupně
ke znakovému řetězci přidává zprava tento zbytek. Pokud je zbytek větší než 9, převedeme ho na příslušné písmeno
(A=10, B=11, C=12, D=13, E=14, F=15). Dělení končí, pokud výsledek bude nulový.

Př.:
11961 : 16 = 747, zb. 9
747 : 16 = 46, zb. 11 (=B)
46 : 16 = 2, zb. 14 (=E)
2 : 16 = 0, zb. 2

Výsledek: 2EB9
#include "stdafx.h"
#include "math.h"
#include 
#include 

using namespace std;

string prevod16(int x)
{
	string y;
    int zb;

    y="H";
    do
	{
        zb=x%16;
        if (zb>=10 && zb<=15) y=(char)(zb+55)+y;
                         else y=(char)(zb+48)+y;
        x=x/16;
	}
	while (x!=0);
    return y;
}

int _tmain(int argc, _TCHAR* argv[])
{
	int a;
    string s;

    printf("Zadejte cislo v desitkove soustave: ");
    scanf_s("%d",&a,1);

    s=prevod16(a);

	printf("%dD=",a);
	cout<<s;
	printf("\n");
 
	system("pause");
	return 0;
}
program ke stažení