#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 10
/* 写出一个函数、输入一个十六进制数,输出相应的十进制数*/
int main(int argc, char *argv[]) {
int intergrity(char s[]);
printf("input:\n");
int i=0;
char str[max];
char c;
int transnum;
while((c=getchar())!='\0'&&i<max) //do not write as c=getchar()!='\0', the correct one is (c=getchar())!='\0'
{
if((c>='0'&&c<='9')||(c>='A'&&c<='F')||(c>='a'&&c<='f'))
{
str[i++]=c;
}
else
{
str[i]='\0';// write str[i]='\0' ,or will be the wrong thing
break; //important
}
}
printf("after the transformation:\n");
transnum=integrity(str);
printf("%d",transnum); //输出转换后的数字
return 0;
}
int integrity(char s[])
{
int i;
int n=0;
for(i=0;i<max;++i)
{
if(s[i]>='0'&&s[i]<='9')
{
n=n*16+s[i]-'0';
}
if(s[i]>='a'&&s[i]<='f')
{
n=n*16+s[i]-'a'+10;
}
if(s[i]>='A'&&s[i]<='F')
{
n=n*16+s[i]-'A'+10;
}
}
return n;
}
输入一个十六进制数,输出相应的十进制数
最新推荐文章于 2023-12-07 19:18:16 发布