#include<stdio.h>
#include<string.h>
char num1[65],num2[65],num3[65];
int main(void) {
bool overflow=false;
int i,nam=0;
unsigned __int64 A,B,a,b,C=0;
scanf("%I64d %I64d",&A,&B);
a=A,b=B;
for(i=63;i>=0;i--) {
num1[i]=a%2+'0';
num2[i]=b%2+'0';
nam=a%2+b%2+nam;
if(nam==2) {
if(i==0)
overflow=true;
num3[i]='0';
nam/=2;
}
else {
num3[i]=nam+'0';
nam=0;
}
a/=2;
b/=2;
}
nam=1;
for(i=63;i>=0;i--) {
C+=(num3[i]-'0')*nam;
nam*=2;
}
num1[64]=num2[64]='\0';
printf(" %s=%I64d\n",num1,A);
printf("+ %s=%I64d\n ",num2,B);
if(overflow) printf("OVERFLOW!");
else {
for(i=1;i<=64;i++)printf("-");
printf("\n %s=%I64d",num3,C);
}
return 0;
}
'Etc > 한양대학교 1학년 [컴퓨터개론및실습]' 카테고리의 다른 글
[컴퓨터 개론 및 실습] 2학기 (1) | 2013.10.04 |
---|