题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

#include <math.h>
#include <stdio.h>
#include <string.h>
//转换的话直接用权重处理即可,31次方的话,减去前面的Ox只需要使用8位就可以包含,所以我选择是str【10】,C小白,可能有不对的地方欢迎指正
int main() {
    char str[10]={0};
    scanf("%s",&str);
    int len=strlen(str);
    int sum=0;
    for (int i=2; i<len ; i++) {
        int temp=0;
        switch (str[i]) 
        {
        case 'A':temp=10;break;
        case 'B':temp=11;break;
        case 'C':temp=12;break;
        case 'D':temp=13;break;
        case 'E':temp=14;break;
        case 'F':temp=15;break;
        default:temp=str[i]-'0';break;
        }
        sum=sum+temp*pow(16, len-i-1);

    }
    printf("%d\n",sum);
    return 0;
}

全部评论

相关推荐

10-25 23:12
门头沟学院 Java
点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务