#include <stdio.h> char num[16]={'0'}; int aa[3]; int answer[5]={0}; void put(void); void change(void); int result(int a); int main(void) { scanf("%s", &num); put(); if(num[0]=='1')//음수일 경우 { change(); printf("%d", result(1)); } else//양수일 경우 printf("%d", result(0)); return 0; } void put(void) { int i; aa[2]=1; for(i=1; i>=0; i--)//2의 제곱수 집어넣기 { aa[i]=aa[i+1]*2; } } void change(void)//1의 보수로 바꾸기 { int i; for(i=0; i<16; i++) { if(num[i]=='1') num[i]='0'; else num[i]='1'; } } int result(int a) { int i, j, an=0, b=10000; for(i=0; i<5; i++)//8진수로 변환 { for(j=(i*3)+1; j<=(i*3)+3; j++) { if(num[j]=='1') answer[i]+=aa[(j-1)%3]; } an+=answer[i]*b; b=b/10; } if(a==1)//음수일 경우 an=0-(an+1); return an; }