题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <stdio.h>
#include <string.h>
//指数符号^不能用,要用pow函数;A和a不一样
int main() {
char input[32];
int output = 0, num, input_int[32] = {0};
scanf("%s", input);
num = strlen(input) - 2; //位数
for (int i = 0; i < num; i++) {
if (input[i + 2] >= '0' && input[i + 2] <= '9'){
input_int[i] = input[i + 2] - '0';
}else if (input[i + 2] >= 'A' && input[i + 2] <= 'F') {
input_int[i] = input[i + 2] - 'A' + 10;
} else if (input[i + 2] >= 'a' && input[i + 2] <= 'f') {
input_int[i] = input[i + 2] - 'a' + 10;
}
}
for (int j = 0; j < num; j++) {
output += pow(16 ,(num - j - 1)) * input_int[j];
}
printf("%d\n", output);
return 0;
}
