#include <cstdio>
#include<iostream>
using namespace std;
int translation(char a){//把单个的十六进制数转化为十进制
if(a>='0'&&a<='9'){
return a-'0';
}
if(a>='a'&&a<='f'){
return a-'a'+10;
}
if(a>='A'&&a<='F'){
return a-'A'+10;
}
}
int main()
{
charinshu1[1005],inshu2[1005];
int i,outshu1,outshu2;
while(scanf("%s%s",&inshu1,&inshu2)!=EOF){//对字符串中的字符进行操作,一般用scanf
outshu1=0;
outshu2=0;
for(i=0;inshu1[i]!='/0';i++){//把输入的16进制数转化为十进制
outshu1=outshu1*16+translation(inshu1[i]);
}
for(i=0;inshu2[i]!='/0';i++){//用字符数组盛放字符串,数组肯定很大,遍历数组直到字符串完毕
outshu2=outshu2*16+translation(inshu2[i]);
}
outshu1=outshu1+outshu2;
cout<<outshu1<<endl;
}
return 0;
}
解法2:
%c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数 %x 读入十六进制整数 %X 同上 %c 读入一个字符 %s 读入一个字符串 %f 读入一个浮点数
#include<stdio.h>int main(){ int i,j,sum; while(scanf("%x%x",&i,&j)!=EOF) { sum=i+j; printf("%d/n",sum); } return 0;}
新闻热点
疑难解答