题解 | #十进制整数转十六进制字符串#
十进制整数转十六进制字符串
https://www.nowcoder.com/practice/80eca5f47e6f473893151b863b25aba1
#include <cstdio>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int num =16;
int i;
string toHexString(int n);
int main() {
int n;
cin >> n;
string hexStr = toHexString(n);
cout << hexStr << endl;
return 0;
}
string toHexString(int n) {
// write your code here......
char s[50] ;
while(n/num >16)
{
num = num * num;
}
for( i=0;n/num >0;i++)
{
if(n/num == 0)
{
s[i+1] = n+'0';
break;
}
if(n/num == 10)
{
s[i] = 'A';
}
else if(n/num == 11)
{
s[i] = 'B';
}
else if(n/num == 12)
{
s[i] = 'C';
}
else if(n/num == 13)
{
s[i] = 'D';
}
else if(n/num == 14)
{
s[i] = 'E';
}
else if(n/num == 15)
{
s[i] = 'F';
}
else
{
s[i] = n/num+'0';
}
n = n-(n/num)*num;
num = num/16;
if(num == 0)
break;
}
s[i+1] = '\0';
return s;
}