码迷,mamicode.com
首页 > 其他好文 > 详细

十六进制与十进制之间的转换

时间:2014-11-24 06:33:53      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:c语言

/*编写函数htoi(s),把由十六进制数字组成的字符串(包含可选的请前缀0x或0X)转换为与之等价的
整型值。字符串中允许包含的数字包括:0~9,a~f以及A~F。*/
/*利用ASCII的差值*/
#include<stdio.h>
#include<math.h>
int htois(char s[])

 int length=0,i=0;
 double num;
 while(s[length]!=‘\0‘)
  length++;


 while(s[i]!=‘\0‘)                  /*直接计算实际的值*/
 {
  if(s[i]>=‘0‘&&s[i]<=‘9‘)                          
   num+=(s[i]-‘0‘)*pow(16.0,length-i-1);
  else if(s[i]>=‘a‘&&s[i]<=‘f‘)
   num+=(s[i]-‘a‘+10)*pow(16.0,length-i-1);
  else if(s[i]>=‘A‘&&s[i]<=‘F‘)
   num+=(s[i]-‘A‘+10)*pow(16.0,length-i-1);
  i++;
 }
 return num;
}
int main()
{
char a[1000],b,temp;
printf("请输入一个有十六进制数字组成的字符串:\n");
scanf("%s",&a);
printf("%d",htois(a));
while(1);
return 0;
}

十六进制与十进制之间的转换

标签:c语言

原文地址:http://blog.csdn.net/u011046042/article/details/41432639

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!