5621转换为16进制数的方法是“除16取余”方法, 5621/16=商351余5,16进制最后一位为5 351/16=商21余15,16进制右边第二位为F 21/16=商1余5,16进制右边第三位为5 1/16=商0余1,16进制数右边第四为为1 商0就不继续除了
最后的结果为15F5
#include <iostream>
#include <string>
using namespace std;
// 整数转换成字符串
string int2str( int num);
int main(int argc, char* argv[])
{
// 十进制转十六进制
int num = 0;
cout<<"Please Input A Num "<<endl;
cin>>num;
string str_num;
while(num / 16 != 0)
{
int a = num / 16;
int mod_a = num % 16;
cout<<"mod_a = "<<mod_a<<endl;
string s;
switch(mod_a)
{
case 10:
s = 'A';
break;
case 11:
s = 'B';
break;
case 12:
s = 'C';
break;
case 13:
s = 'D';
break;
case 14:
s = 'E';
break;
case 15:
s = 'F';
break;
default:
s = int2str(mod_a);
break;
}
str_num = s + str_num;
num = a;
}
if(num % 16 != 0)
{
int last_a = num % 16;
str_num = int2str(last_a) + str_num;
}
cout<<"The Hex Num = "<<str_num<<endl;
return 0;
}
string int2str( int num)
{
if (num == 0 )
return " 0 " ;
string str = "" ;
int num_ = num > 0 ? num : - 1 * num;
while (num_)
{
str = ( char )(num_ % 10 + 48 ) + str;
num_ /= 10 ;
}
if (num < 0 )
str = " - " + str;
return str;
}