进制转换【思维】(巧法)

    xiaoxiao2026-03-13  7

      基础练习 十六进制转十进制   时间限制:1.0s   内存限制:512.0MB 锦囊1 锦囊2 锦囊3 问题描述   从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。   注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535 注意:FFFFFFFF的值超过了int。 代码如下: [cpp]  view plain  copy   #include<cstdio>   #include<cstring>   char str[10];   int num[10];   int main()   {       int len,i;       while(scanf("%s",str)!=EOF)       {           len=strlen(str);           __int64 sum=0;           for(i=0;i<len;++i)           {               if(str[i]=='A')                   sum=sum*16+10;               else if(str[i]=='B')                   sum=sum*16+11;               else if(str[i]=='C')                   sum=sum*16+12;               else if(str[i]=='D')                   sum=sum*16+13;               else if(str[i]=='E')                   sum=sum*16+14;               else if(str[i]=='F')                   sum=sum*16+15;               else                    sum=sum*16+(str[i]-'0');            }           printf("%I64d\n",sum);       }       return 0;   }    或者: [cpp]  view plain  copy   #include<cstdio>   int main()   {       int n;       while(scanf("%x",&n)!=EOF)           printf("%u\n",n);       return 0;  
    转载请注明原文地址: https://ju.6miu.com/read-1307925.html
    最新回复(0)