#include<stdio.h>
int htoi(char s[]);
void getline(char s[]);
main(){
char s[100];
printf("---Please insert a hexadecimal numeber starting with 0x/0X---\n");
getline(s);
printf("result is: %d\n", htoi(s));
getchar();
}
//利用getchar()将文件流读入字符数组
void getline(char s[]){
int c,i;
for (i = 0; (c = getchar()) != EOF && c != '\n';i++)
s[i] = c;
}
int htoi(char s[]){
int i = 1;
int a;
int n = 0;
if ((s[0] == '0') && (s[1] == 'x' || s[1] == 'X')){
while (1){
i++;
if (s[i] >= '0' && s[i] <= '9')
a = s[i] - '0';
else if (s[i] >= 'a' && s[i] <= 'f')
a = s[i] - 'a' + 10;
else if (s[i] >= 'A' && s[i] <= 'F')
a = s[i] - 'A' + 10;
else
break;
n = n * 16 + a;
}
}
else
printf("wrong format\n");
return n;
}
十六进制数转化成十进制数
最新推荐文章于 2023-06-03 13:05:05 发布