为了账号安全,请及时绑定邮箱和手机立即绑定

C语言进制转换

C语言进制转换

C
慕仰5061498 2016-05-13 21:02:41
 编写一个函数,输入一个十六进制的字符串,输出其对应的十进制整数(函数类型为整型)这是我写的程序,但输入比如20或者2AF5最后结果就是负数,要怎么修改?或者有没有其他解法?大神帮忙#include<stdio.h>#include<string.h>int fun(char*); main(){  char a[81];  printf("请输入十六进制字符串:\n");  gets(a);  fun(a); } int fun(char *a){  int i,j,sum=0;  for(i=0;a[i]!='\0';i++){  if(a[i]>10)  j=a[i]-'A'+10;  else j=a[i]; sum=sum*16+j; } printf("对应的十进制数为:%d\n",sum); }
查看完整描述

1 回答

?
慕运维2420015

TA贡献6条经验 获得超3个赞

好好对照ASCII码表,看看字符对应的十进制数再写。字符0~9对应十进制数48~57,而大写字母是从65开始的,小写从97开始,所以你的判断条件不够,例:你输入第一位是字符‘1’;那么‘1’对应49,‘A’对应65,你定义的变量j就变成了-6.

查看完整回答
反对 回复 2016-05-13
  • 1 回答
  • 0 关注
  • 1455 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信