#include<stdio.h>
int main(void)
{
int dec, bin;
unsigned mask;
int i, sign = 0, sel;
do {
printf("10진수:1, 2진수:2 : ");
scanf("%d", &sel);
} while (sel < 1 || sel > 2);
if (sel == 1) {
printf("-8~7 입력 : ");
scanf("%d", &dec);
mask = 8;
for (i = 0, mask = 8, bin = 0; i < 4; i++) {
bin *= 10;
bin += (dec & mask)? 1: 0;
mask >>= 1;
}
printf("2진수로 %4d입니다\n", bin);
}
else if (sel == 2) {
printf("4자리 2진수 입력 : ");
scanf("%d", &bin);
mask = 1;
if (bin >= 1000) { // 음수일 경우
for (i = 0; i < 4; i++) {
if (bin % 10 == 0) dec += mask; // 해당 비트가 0일 때
bin /= 10;
mask *= 2;
}
dec++; // 1을 더하고
dec *= -1; // 음수로 만듬
}
else { // 양수일 경우
for (i = 0; i < 3; i++) {
if (bin % 10) dec += mask;
bin /= 10;
mask *= 2;
}
}
printf("10진수로 %d입니다\n", dec);
}
return 0;
}