首页 > 代码库 > 十六进制与十进制之间的转换
十六进制与十进制之间的转换
/*编写函数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;
}
整型值。字符串中允许包含的数字包括: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;
}
十六进制与十进制之间的转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。