#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;}
新聞熱點
疑難解答