题解 | #进制转换#
进制转换
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; }