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] != '\0'; ++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 }
复制代码

 

posted @   人间烟火地三鲜  阅读(34570)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示