题解 | #进制转换#

进制转换

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

#include <stdio.h>
#include<string.h>
#include<math.h>
int main() {
     char a[10000];
     gets(a);
     int len=strlen(a);
     int convert=0;//最后的进制转换结果
     int temp=0;//16的幂的中间变量
     for(int i=len-1;i>=2;i--)
     {
         temp=pow(16,len-1-i);

         if(a[i]>='0' && a[i]<='9') //0的ascii码是48
            {
                a[i] = a[i]-48;
            } 
            else if(a[i]>='A' && a[i]<='F')//A的ascii码是65
            {
                a[i] = a[i]-65+10;
            }
            else if(a[i]>='a' && a[i]<='f')//a的ascii码是97
            {
                a[i] = a[i]-97+10;
            }

         convert+=a[i]*temp;
     }
     printf("%d",convert);
}

全部评论

相关推荐

2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
就用这个吧:支持多益再加一个空气使用费
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务