目标:输入16进制字符串,输出对应10进制数字
以下以一个题目给出方法;
/**************************/
/* coding in 2021/5/13 */
/**************************/
/*
请编写一个函数hextodec,能将参数中的十六进制字符串转换为十进制数并返回结果,可以使用上
次作业中(题号4.7)的函数getadec来辅助完成。编写主程序,输入并计算两个十六进制数的和,
并将结果以十进制方式显示。例如,顺序输入"AB"、"CD"两个数,会显示376。
*/
#include<stdio.h>
int hexadec(char ch);
int main(void){
int i,a,b,x[2]={0,0},t;
char ch;
for(i=0;i<2;i++){
while((ch=getchar())!='\n'){
t=hexadec(ch);
if(t==-1)break;
x[i]=x[i]*16+t;
}
}
printf("%d ",x[0]+x[1]);
return 0;
}
/*以下为16进制转10进制核心代码*/
int hexadec(char ch){
if(ch>='0'&&ch<='9')return ch-'0';
if(ch>='A'&&ch<='Z')return ch-'A'+10;
if(ch>='a'&&ch<='z')return ch-'a'+10;
else return -1;
}
方法仅供参考…