#include <iostream>
int hex(int n){
int temp;
while(n != 0){
temp = n%16;
if(temp >= 0 && temp <= 9)
std::cout << temp << " ";
else if(temp >= 10 && temp <= 15)
std::cout << 'A' + temp - 10 << " ";
n /= 16;
}return temp;
}
int main()
{
hex(933);
}
Как вариант:
#include <iostream>
#include <vector>
void hex(int n) {
std::vector <int> v;
while (n != 0) {
v.push_back(n % 16);
n /= 16;
}
for (int i = v.size() - 1; i >= 0; --i)
{
if (v[i] > 9)
std::cout << (char)((int)'A' - (10 - v[i]));
else
std::cout << v[i];
}
}
int main()
{
hex(933);
return 0;
}
Я бы сделал попроще:
string hex(unsigned int n)
{
string res;
while(n){
res = "0123456789abcdef"[n%16] + res;
n /= 16;
}
return res;
}
int main()
{
cout << hex(933) << endl;
cout << hex(15) << endl;
cout << hex(84) << endl;
}
Вот вариант покороче, с рекурсией:
void hex(unsigned int n)
{
if (n == 0) return;
hex(n/16);
cout << "0123456789abcdef"[n%16];
}
int main()
{
hex(933); cout << endl;
hex(15); cout << endl;
hex(84); cout << endl;
}
Ну и, понятно, самое простое :)
int main()
{
cout << hex << 933 << endl;
cout << hex << 15 << endl;
cout << hex << 84 << endl;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей