题解 | 进制转换 16转10
进制转换
https://www.nowcoder.com/practice/deb19498bc644f53a6a99905ef5ee01d
//只需调用前面写的 m转十 代码就行,将m=16
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <vector>
#include <string>
#include <iostream>
using namespace std;
// char int2char(int target) {
// if (target < 9) {
// return target+'0';
// }
// else {
// return target - 10 + 'A';
// }
// }
// void convert(int number,int n) {
// vector<char> vec;
// if (number == 0) {
// vec.push_back(0);
// }
// else {
// while (number != 0) {
// vec.push_back(int2char(number % n));
// number /= n;
// }
// }
// for (int i = vec.size() - 1; i >= 0; i--) {
// printf("%c", vec[i]);
// }
// printf("\n");
// }
int char2int(char c) {
if (c <= '9') {
return c - '0';
}
else {
return c - 'A' + 10;
}
}
void convertmtt(string str, int m) {
int number = 0;
for (int i = 0; i < str.size(); i++) {
number *= 16;
number += char2int(str[i]);
}
printf("%d\n", number);
}
int main() {
/*int n;
while (scanf("%d", &n) != EOF) {
convert(n,16);*/
string str;
while(cin>>str){
str=str.substr(2); //截去前两位0x
convertmtt(str, 16); //16转10
}
return 0;
}
进制转换问题 文章被收录于专栏
包括任意进制的转换(m转n,先m转10,再10转n) 和大整型的进制转换(0.利用字符串存储大整型 1.实现字符串除法以完成10转n 2.实现字符串加法和字符串乘法以完成m转十
查看4道真题和解析