永发信息网

有C语言编写一函数,输入一十六进制数,输出相应的十进制数

答案:2  悬赏:40  手机版
解决时间 2021-06-07 10:46
  • 提问者网友:动次大次蹦擦擦
  • 2021-06-07 00:23
有C语言编写一函数,输入一十六进制数,输出相应的十进制数
最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-06-07 00:30
#include<stdio.h>

void main(){
int i=0;
int value=0;
char ch[10];
printf("请输入一个16进制数:");
gets(ch);
while (ch[i])
{
if(ch[i]>='A'&&ch[i]<='F')
value=(ch[i]-55)+16*value;
else if(ch[i]>='a'&&ch[i]<='f')
value=(ch[i]-87)+16*value;
else if(ch[i]>='0'&&ch[i]<='9')
value=(ch[i]-48)+16*value;
else
{
printf("输入有误\n");
break;
}
i++;
}
printf("十进制数为%d\n",value);
}
全部回答
  • 1楼网友:患得患失的劫
  • 2021-06-07 02:02
#include "stdio.h" int main() { char *Str; int lenth; int i; int sum; printf("请输入你要转换的16进制数字:"); gets(Str); sum=0; lenth=strlen(Str); for(i=1;i<=lenth;i++) { switch(Str[lenth-i]) { case "0":sum=sum+0*16^(lenth-i);break; case "1":sum=sum+1*16^(lenth-i);break; case "2":sum=sum+2*16^(lenth-i);break; case "3":sum=sum+3*16^(lenth-i);break; case "4":sum=sum+4*16^(lenth-i);break; case "5":sum=sum+5*16^(lenth-i);break; case "6":sum=sum+6*16^(lenth-i);break; case "7":sum=sum+7*16^(lenth-i);break; case "8":sum=sum+8*16^(lenth-i);break; case "9":sum=sum+9*16^(lenth-i);break; case "A":sum=sum+10*16^(lenth-i);break; case "B":sum=sum+11*16^(lenth-i);break; case "C":sum=sum+12*16^(lenth-i);break; case "D":sum=sum+13*16^(lenth-i);break; case "E":sum=sum+14*16^(lenth-i);break; case "F":sum=sum+15*16^(lenth-i);break; default:{printf("error\n");return(0);} } } printf("\n此16进制对应的10进制数为:%d\n",sum); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯