题解 | #进制转换#

进制转换

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

全部评论

相关推荐

04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
代码飞升:简历差不多情况下你的学历已经加分了,海投就行,加油,不要追求尽善尽美
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务