#include <stdio.h>
#include <stdlib.h>
int hex2dec(char c) {
if(c<='9') return c-'0';
if(c<'G') return c-'A'+10;
if(c<'g') return c-'a'+10;
printf("[%c]는 허용되지 않는 16진수입니다.");
exit(1);
}
int dec2hex(int x) {
if(x<10) return x+'0';
else return x-10+'a';
}
int main() {
int a, b, x, y, z, i=0, n;
char s1[100], s2[100], s3[100];
printf("두수입력: ");
scanf("%s %s", s1, s2);
i=0;
while(s1[i]!=0) i=i+1;
a=i;
i=0;
while(s2[i]!=0) i=i+1;
b=i;
if(a>b) n=b; else n=a;
i=0; z=0;
while(i<n) {
x=hex2dec(s1[a-i-1]);
y=hex2dec(s2[b-i-1]);
s3[i]=x+y+z;
z=s3[i]/16;
s3[i]=s3[i]%16;
i=i+1;
}
while(i<a) {
x=hex2dec(s1[a-i-1]);
s3[i]=x+z;
z=s3[i]/16;
s3[i]=s3[i]%16;
i=i+1;
}
while(i<b) {
y=hex2dec(s2[b-i-1]);
s3[i]=y+z;
z=s3[i]/16;
s3[i]=s3[i]%16;
i=i+1;
}
if(z!=0) {
s3[i]=z;
i=i+1;
}
x=i;
for(i=0;i<x;++i) printf("%c", dec2hex(s3[x-i-1]));
return 0;
}
'c·c++ > c 프로그래밍' 카테고리의 다른 글
2개의 for문을 사용한 별찍기 (0) | 2012.11.20 |
---|---|
최대값, 최소값, 2번째 큰값, 2번째 작은값 (0) | 2012.11.19 |
세원이 만나는 점 구하기 (0) | 2012.11.14 |
일정시간이 지나면 scanf를 취소하기. (0) | 2012.11.14 |
8-퍼즐 초기화(섞어주기) (0) | 2012.11.06 |