码迷,mamicode.com
首页 > 其他好文 > 详细

数的进制转换

时间:2020-11-30 15:20:06      阅读:5      评论:0      收藏:0      [点我收藏+]

标签:number   std   using   har   进制转换   space   ima   图片   ack   

技术图片

 技术图片

 技术图片

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main() {
 4     int t;
 5     cin >> t;
 6     while (t--) {
 7         int a, b;
 8         string a_line, b_line;
 9         cin >> a >> b >> a_line;
10         vector<int> number;
11         for (int i = 0; i < a_line.size(); i++) {
12             if (a_line[i] >= ‘0‘ && a_line[i] <= ‘9‘) {
13                 number.push_back(a_line[i] - ‘0‘);
14             }
15             if (a_line[i] >= ‘A‘ && a_line[i] <= ‘Z‘) {
16                 number.push_back(a_line[i] - ‘A‘ + 10);
17             }
18             if (a_line[i] >= ‘a‘ && a_line[i] <= ‘z‘) {
19                 number.push_back(a_line[i] - ‘a‘ + 36);
20             }
21         }
22         reverse(number.begin(), number.end());
23         vector<int> res; //答案
24         
25         while (number.size()) { //只要number不是空的,也就是说只要还没有被除成0
26             int r = 0; //存储进位,上一位的余数
27             for (int i = number.size() - 1; i >= 0; i--) {
28                 number[i] += r * a;
29                 r = number[i] % b;
30                 number[i] /= b;
31             }
32             res.push_back(r); //个十百千...
33             while (number.size() && number.back() == 0) {
34                 number.pop_back();
35             }
36         }
37         reverse(res.begin(), res.end());
38         for (int i = 0; i < res.size(); i++) {
39             if (res[i] <= 9) {
40                 b_line += char(res[i] + ‘0‘);
41             }
42             if (res[i] >= 10 && res[i] <= 35) {
43                 b_line += char(res[i] + ‘A‘ - 10);
44             }
45             if (res[i] >= 36) {
46                 b_line += char(res[i] + ‘a‘ - 36);
47             }
48         }
49         cout << a << " " << a_line << endl;
50         cout << b << " " << b_line << endl;
51         cout << endl;
52     }
53     return 0;
54 }

 

数的进制转换

标签:number   std   using   har   进制转换   space   ima   图片   ack   

原文地址:https://www.cnblogs.com/fx1998/p/14032325.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!