Witam.
Staram się napisać program, który zamienia liczby z systemu dziesiętnego na szesnastkowy.
Mój program wyświetla liczbę szesnastkową, ale nie zamienia cyfr na litery, np. zamiast (dzies. 1000) 3E8, wyświetla 3148.
Mogę liczyć na pomoc?
Z góry dziękuje.
Poniżej kod:
#include <iostream>
using namespace std;
void dec2hex(int liczba)
{
char tab[31];
int i=0 , A , B , C , D , E , F;
while(liczba)
{
tab[i++]=liczba%16;
switch(tab[i])
{
case 10:
{tab[i]+=55;
break;}
case 11:
{tab[i]+=55;
break;}
case 12:
{tab[i]+=55;
break;}
case 13:
{tab[i]+=55;
break;}
case 14:
{tab[i]+=55;
break;}
case 15:
{tab[i]+=55;
break;}
}
liczba=liczba/16;
}
for (int j=i-1; j>=0;j--)
{cout<<tab[j];}
}
int main()
{
int liczba;
cout <<"Podaj liczbe: ";
cin>>liczba;
cout<<liczba<<" po zamianie na postac hexagonalna to: ";
dec2hex(liczba);
cout<<endl;
return 0;
}