• 1566:基础练习 十六进制转八进制


     题目地址:https://acmore.cc/problem/LOCAL/1566

     1 #include <iostream>
     2 #include <string>
     3 
     4 using namespace std;
     5 
     6 string HexToBin(string s)  //16进制转2进制
     7 {
     8     string str = "";
     9     for (int i = 0; i < s.size(); ++i)
    10     {
    11         switch (s[i])
    12         {
    13         case '0': str += "0000"; break;
    14         case '1': str += "0001"; break;
    15         case '2': str += "0010"; break;
    16         case '3': str += "0011"; break;
    17         case '4': str += "0100"; break;
    18         case '5': str += "0101"; break;
    19         case '6': str += "0110"; break;
    20         case '7': str += "0111"; break;
    21         case '8': str += "1000"; break;
    22         case '9': str += "1001"; break;
    23         case 'A': str += "1010"; break;
    24         case 'B': str += "1011"; break;
    25         case 'C': str += "1100"; break;
    26         case 'D': str += "1101"; break;
    27         case 'E': str += "1110"; break;
    28         case 'F': str += "1111"; break;
    29         }
    30 
    31     }
    32     return str;
    33 }
    34 
    35 
    36 
    37 int main()
    38 {
    39     
    40     int n;
    41     while (cin >> n)
    42     {
    43         string s;
    44         for (int i = 0; i < n; ++i)
    45         {
    46             cin >> s;
    47             string binStr = HexToBin(s);  //先将s转换为二进制串binStr
    48             int a = (int)binStr.size() % 3;
    49             if (a != 0)        //如果二进制串的长度不是3的倍数,就在前面补零
    50             {
    51                 for (int i = 1; i <= 3 - a; ++i)
    52                     binStr = "0" + binStr;
    53             }
    54 
    55             for (int i = 0; i < binStr.size(); i += 3)
    56             {
    57                 string str;
    58                 str = binStr.substr(i, 3);    //截取binStr长度为3的子串
    59                 if (str == "000" && i != 0)
    60                     cout << 0;
    61                 else if (str == "001")
    62                     cout << 1;
    63                 else if (str == "010")
    64                     cout << 2;
    65                 else if (str == "011")
    66                     cout << 3;
    67                 else if (str == "100")
    68                     cout << 4;
    69                 else if (str == "101")
    70                     cout << 5;
    71                 else if (str == "110")
    72                     cout << 6;
    73                 else if (str == "111")
    74                     cout << 7;
    75             }
    76             cout << endl;
    77         }
    78         
    79     }
    80 
    81     return 0;
    82     
    83 }
  • 相关阅读:
    ng-if 下ng-model失效 ng-repeat循环输出单选框
    ng-repeat输出当前值,ng-class的使用
    SQL-select中使用条件判断语句
    JS-Ajax
    ASP.NET-缓存Cache
    MVC-Filter-脚本注入
    三层架构与MVC的区别
    MVC-Route
    cookie-session
    初衷
  • 原文地址:https://www.cnblogs.com/FengZeng666/p/10354625.html
Copyright © 2020-2023  润新知