题解 | #进制转换#

进制转换

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;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务