十进制转十六进制

来源:互联网 发布:mplayerx mac 白屏 编辑:程序博客网 时间:2024/05/20 00:11

 

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
[cpp] view plaincopy
  1. #include <iostream>  
  2. #include <string>  
  3.   
  4. using namespace std;  
  5.   
  6. // 整数转换成字符串  
  7. string  int2str( int  num);  
  8.   
  9.    
  10. int main(int argc, char* argv[])  
  11. {  
  12.     // 十进制转十六进制  
  13.     int num = 0;  
  14.     cout<<"Please Input A Num "<<endl;  
  15.     cin>>num;  
  16.     string str_num;  
  17.     while(num / 16 != 0)  
  18.     {  
  19.         int a = num / 16;  
  20.         int mod_a = num % 16;  
  21.         cout<<"mod_a = "<<mod_a<<endl;  
  22.         string s;  
  23.         switch(mod_a)  
  24.         {  
  25.         case 10:  
  26.             s = 'A';  
  27.             break;  
  28.         case 11:  
  29.             s = 'B';  
  30.             break;  
  31.         case 12:  
  32.             s = 'C';  
  33.             break;  
  34.         case 13:  
  35.             s = 'D';  
  36.             break;  
  37.         case 14:  
  38.             s = 'E';  
  39.             break;  
  40.         case 15:  
  41.             s = 'F';  
  42.             break;  
  43.         default:  
  44.             s = int2str(mod_a);  
  45.             break;  
  46.         }  
  47.         str_num = s + str_num;  
  48.         num = a;  
  49.     }  
  50.     if(num % 16 != 0)  
  51.     {  
  52.         int last_a = num % 16;  
  53.         str_num = int2str(last_a) + str_num;  
  54.     }  
  55.   
  56.     cout<<"The Hex Num = "<<str_num<<endl;  
  57.     return 0;  
  58. }  
  59.   
  60. string  int2str( int  num)  
  61. {  
  62.     if (num  ==   0 )  
  63.         return   " 0 " ;  
  64.     string  str  =   "" ;  
  65.     int  num_  =  num  >   0   ?  num :  - 1   *  num;  
  66.     while (num_)  
  67.     {  
  68.         str  =  ( char )(num_  %   10   +   48 )  +  str;  
  69.         num_  /=   10 ;  
  70.     }   
  71.     if (num  <   0 )  
  72.         str  =   " - "   +  str;  
  73.     return  str;  
  74. }  
0 0
原创粉丝点击