zoukankan      html  css  js  c++  java
  • C语言 · 十六进制转十进制

    基础练习 十六进制转十进制  
    时间限制:1.0s   内存限制:512.0MB
      
    问题描述
      从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
      注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
    样例输入
    FFFF
    样例输出
    65535
     

    思路:

    需要留意的是sum的类型,数大点就不通过。——用long long型就够了,用lld输出。

    代码一:

     1 #include<stdio.h>
     2 #include<string.h> 
     3 int main(){
     4     char s[50];
     5     scanf("%s",&s);
     6     int t,len;
     7     len = strlen(s);
     8     long long sum=0;
     9     for(int i=0;i<len;i++){
    10         if(s[i]<='9')
    11             t=s[i]-'0';
    12         else
    13             t=s[i]-'A'+10;
    14         sum=sum*16+t;
    15     }
    16     printf("%lld",sum);
    17     return 0;
    18 }

     代码二:

     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<string.h>
     4 int main(){
     5     char s[20];
     6     int i = 0, t = 0, temp = 0;
     7     scanf("%s",s);
     8     t = strlen(s);//得到字符串长度 
     9     long long answer=0;
    10     for(int i=0;i<t;i++){
    11         if(s[i]>='A' && s[i]<='Z')
    12             s[i]=int(s[i]-'A')+10+'0';
    13         answer+=((s[i]-'0')*(pow(16,t-1-i)));
    14     }
    15     printf("%lld",answer);
    16     return 0;
    17 }

    代码三:

     1 #include<stdio.h>  
     2 #include<string.h>  
     3 #include<math.h>  
     4 int main(){  
     5     char strHex[10];  
     6     int i = 0, len = 0, temp = 0;  
     7     long long answer = 0;  
     8     gets(strHex);  
     9     len = strlen(strHex);  
    10     for (i = 0; strHex[i] != ''; ++i){  
    11         switch(strHex[i]){  
    12             case 'A': temp = 10; break;  
    13             case 'B': temp = 11; break;  
    14             case 'C': temp = 12; break;  
    15             case 'D': temp = 13; break;  
    16             case 'E': temp = 14; break;  
    17             case 'F': temp = 15; break;  
    18             default: temp = strHex[i]-'0'; break;  
    19         }  
    20         answer += (temp*pow(16,len-1-i));  
    21     }  
    22     printf("%lld",answer);  
    23     return 0;  
    24 }
  • 相关阅读:
    commons-logging.jar 和 log4j.jar 的关系
    百钱买百鸡
    reflect
    golang结构体、接口、反射
    golang文件操作
    sqlx使用说明
    go example
    goroutine
    生成二维码
    method&interface
  • 原文地址:https://www.cnblogs.com/panweiwei/p/6478631.html
Copyright © 2011-2022 走看看