如何用C语言实现十六进制转换为十进制.
2个回答
展开全部
计算机内部按2进制存放数据,输入输出才涉及 10进制,16进制等等。
所以,你按10进制输入,按16进制输出就达到你的目的了。
例如:
int x;
printf("input x\n");
scanf("%d",&x); // %d 就是按10进制输入
printf("The hex is %x\n", x); // %x 就是按16进制输入
// c/c++ 有 itoa 函数,可以把整型转各种进制,存放于字符数组s里,
// 例如 2进制: itoa(x,s,2); 8进制: itoa(x,s,8); 16 进制: itoa(x,s,16);
所以,你按10进制输入,按16进制输出就达到你的目的了。
例如:
int x;
printf("input x\n");
scanf("%d",&x); // %d 就是按10进制输入
printf("The hex is %x\n", x); // %x 就是按16进制输入
// c/c++ 有 itoa 函数,可以把整型转各种进制,存放于字符数组s里,
// 例如 2进制: itoa(x,s,2); 8进制: itoa(x,s,8); 16 进制: itoa(x,s,16);
2018-01-23 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517181
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
方案一:
?
#include<stdio.h>#include<math.h>#include<string.h>int main(){char s[50];scanf("%s",s);int t=strlen(s);long sum=0;for(int i=0;i<t;i++){if(s[i]>='A' && s[i]<='Z')s[i]=int(s[i]-'A')+10+'0';sum+=((s[i]-'0')*(pow(16,t-1-i)));}printf("%ld\n",sum);}
方案二:#include<stdio.h>int main(){char s[50];scanf("%s",s);int t;long sum=0;for(int i=0;s[i];i++){if(s[i]<='9')t=s[i]-'0';elset=s[i]-'A'+10;sum=sum*16+t;}printf("%ld\n",sum);return 0;}
?
#include<stdio.h>#include<math.h>#include<string.h>int main(){char s[50];scanf("%s",s);int t=strlen(s);long sum=0;for(int i=0;i<t;i++){if(s[i]>='A' && s[i]<='Z')s[i]=int(s[i]-'A')+10+'0';sum+=((s[i]-'0')*(pow(16,t-1-i)));}printf("%ld\n",sum);}
方案二:#include<stdio.h>int main(){char s[50];scanf("%s",s);int t;long sum=0;for(int i=0;s[i];i++){if(s[i]<='9')t=s[i]-'0';elset=s[i]-'A'+10;sum=sum*16+t;}printf("%ld\n",sum);return 0;}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询