2017年9月17日 星期日

[C_MM20-易] 十進位轉十六進位(C++)

[C_MM20-易] 十進位轉十六進位

  1. #include <iostream>  
  2. #include <math.h>  
  3. using namespace std;  
  4.   
  5. int main() {  
  6.     int num_10, num_16;  
  7.     while(cin >> num_10)  
  8.     {  
  9.         if(num_10 < 16)          //把0~15的數字轉成16進位
  10.         {  
  11.             switch(num_10)   
  12.             {   
  13.                 case 15:   
  14.                     cout << "F" << endl;  
  15.                     break;  
  16.                 case 14:   
  17.                     cout << "E" << endl;   
  18.                     break;   
  19.                 case 13:   
  20.                     cout << "D" << endl;   
  21.                     break;   
  22.                 case 12:   
  23.                     cout << "C" << endl;   
  24.                     break;   
  25.                 case 11:   
  26.                     cout << "B" << endl;   
  27.                     break;  
  28.                   case 10:   
  29.                     cout << "A" << endl;  
  30.                     break;  
  31.                 case 9:   
  32.                     cout << "9" << endl;   
  33.                     break;   
  34.                 case 8:   
  35.                     cout << "8" << endl;   
  36.                     break;   
  37.                 case 7:   
  38.                     cout << "7" << endl;   
  39.                     break;   
  40.                 case 6:   
  41.                     cout << "6" << endl;   
  42.                     break;  
  43.                   case 5:   
  44.                     cout << "5" << endl;   
  45.                     break;   
  46.                 case 4:   
  47.                     cout << "4" << endl;   
  48.                     break;   
  49.                 case 3:   
  50.                     cout << "3" << endl;   
  51.                     break;   
  52.                 case 2:   
  53.                     cout << "2" << endl;   
  54.                     break;  
  55.                   case 1:   
  56.                     cout << "1" << endl;   
  57.                     break;  
  58.                 default:   
  59.                      cout << "0" << endl;   
  60.             }   
  61.         }  
  62.         else if(num_10 >= 16 && num_10 < 256)  //把16~255的數字轉成16進位
  63.         {  
  64.             switch((int)floor(num_10/16))   //計算16的一次方的數量,並轉換成16進位
  65.             {   
  66.                 case 15:   
  67.                     cout << "F";  
  68.                     break;  
  69.                 case 14:   
  70.                     cout << "E";   
  71.                     break;   
  72.                 case 13:   
  73.                     cout << "D";   
  74.                     break;   
  75.                 case 12:   
  76.                     cout << "C";   
  77.                     break;   
  78.                 case 11:   
  79.                     cout << "B";   
  80.                     break;  
  81.                   case 10:   
  82.                     cout << "A";  
  83.                     break;  
  84.                 case 9:   
  85.                     cout << "9";   
  86.                     break;   
  87.                 case 8:   
  88.                     cout << "8";   
  89.                     break;   
  90.                 case 7:   
  91.                     cout << "7";   
  92.                     break;   
  93.                 case 6:   
  94.                     cout << "6";   
  95.                     break;  
  96.                   case 5:   
  97.                     cout << "5";   
  98.                     break;   
  99.                 case 4:   
  100.                     cout << "4";   
  101.                     break;   
  102.                 case 3:   
  103.                     cout << "3";   
  104.                     break;   
  105.                 case 2:   
  106.                     cout << "2";   
  107.                     break;  
  108.                   case 1:   
  109.                     cout << "1";   
  110.                     break;  
  111.                 default:   
  112.                      cout << "0";   
  113.             }  
  114.               
  115.             switch(num_10%16)   //計算16的零次方(也就是1)的數量,並轉換成16進位
  116.             {   
  117.                 case 15:   
  118.                     cout << "F" << endl;  
  119.                     break;  
  120.                 case 14:   
  121.                     cout << "E" << endl;   
  122.                     break;   
  123.                 case 13:   
  124.                     cout << "D" << endl;   
  125.                     break;   
  126.                 case 12:   
  127.                     cout << "C" << endl;   
  128.                     break;   
  129.                 case 11:   
  130.                     cout << "B" << endl;   
  131.                     break;  
  132.                   case 10:   
  133.                     cout << "A" << endl;  
  134.                     break;  
  135.                 case 9:   
  136.                     cout << "9" << endl;   
  137.                     break;   
  138.                 case 8:   
  139.                     cout << "8" << endl;   
  140.                     break;   
  141.                 case 7:   
  142.                     cout << "7" << endl;   
  143.                     break;   
  144.                 case 6:   
  145.                     cout << "6" << endl;   
  146.                     break;  
  147.                   case 5:   
  148.                     cout << "5" << endl;   
  149.                     break;   
  150.                 case 4:   
  151.                     cout << "4" << endl;   
  152.                     break;   
  153.                 case 3:   
  154.                     cout << "3" << endl;   
  155.                     break;   
  156.                 case 2:   
  157.                     cout << "2" << endl;   
  158.                     break;  
  159.                   case 1:   
  160.                     cout << "1" << endl;   
  161.                     break;  
  162.                 default:   
  163.                      cout << "0" << endl;   
  164.             }  
  165.         }  
  166.     }  
  167.     return 0;  
  168. }  



沒有留言:

張貼留言