#pragma hdrstop
#pragma argsused
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
//13. int의 상위 2바이트와 하위 2바이트의 값을 short int로 각각 출력하는
// 프로그램을 작성하라. 이때, 하나의 int와 short int 배열의 두 원소로 구성된
// 공용체를 사용하라
struct bc{
int a;
int short b[20];
int short c[20];
};
int main()
{
int i, j, ij, result[20];
struct bc bc;
scanf("%d",&bc.a);
// 10진수를 2진수로 변환
for(i=0; bc.a>0 ; i++)
{
result[20] = bc.a%2;
bc.a = bc.a/2;
}
ij = i;
j = i;
for(j=--i;j>-1;j--)
{
if(j>i/2)
{
bc.b[j] = result[j];
printf("%d\n", bc.b[j]);
}
else{
bc.c[j] = result[j];
printf("%d\n", bc.c[j]);
}
}
printf("\n변환 결과\n");
for(--i;i>-1;i--)
{
if(i>ij/2)
{
printf("%d", bc.b[j]);
}
else{
printf("%d", bc.c[j]);
}
}
system("pause");
return 0;
}
/* 나름 이리 저리 돌려봤는대 결국은 안됩니다.
그냥 상하위 바이트를 나누지 않고는 잘 만들어서 돌렸는대 나누라니깐 모르겠더군요
*/