如何用C语言实现十六进制转换为十进制.

 我来答
金色潜鸟
2018-01-23 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5613万
展开全部
计算机内部按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);
huanglenzhi
2018-01-23 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数: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;}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式