Zamiana liczby dziesiętnej na szesnastkową

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    long liczba;
	string zapis="";
	cout << "Podaj liczbe w systemie dziesietnym: ";
	cin >> liczba;
	cout << liczba << " po konwersji na system 16-kowy wynosi: "<< endl;

	while(liczba!= 0)

		{
			int wynik = liczba%16; // obliczamy kolejna liczbe/litere do wyswietlenia
			liczba /= 16; // zmniejszamy liczbe


			if ( wynik < 10 )
				zapis = char(wynik+48) + zapis;   //  zapis do łańcucha tekstowego liczby
			else
				zapis = char (wynik+55 ) + zapis; //zapis do łańcucha tekstowego litery
		}
	cout << zapis;
	return 0;
    
}