본문 바로가기

c&c++

2진수 출력 코드 실습

주어진 정수형 데이터의 메모리상의 표현(2진수)을 출력하는 코드를 작성하시오

 

ex) 12 입력 -> 0000 0000 0000 0000 0000 0000 0000 1100 출력

- 입력에는 scanf 사용

- 주어진 정수형 데이터의 비트별 내용을 출력하는 것에 중점

- bitwise 연산자를 사용할 것

 

 

-------------------------------------------------------------------------------------------------------------------------

 

#include<stdio.h>

int main(void)
{
unsigned int check = 0x80000000;
int num, i;
int result;

// int num_in;                                           

 

// scanf 함수 자체가 받을 내용을 변수로 지정하므로 굳이 다시 변수로 저장할 필요가 없음

// scanf 함수로 받은 값을 다시 변수로 저장하여 코드 작성했을 경우 망한 코드가 됨(이유는 모름)

scanf_s("%d", &num);

// num_in = scanf_s("%d" , &num);

for (i = 0; i < 32; i++)
{
result = check & num;         // 이 코드의 위치가 for문 위에 있으면 작동하지 않음(오류1)

// result = check & num_in;

if (result == 0)                         

 

// 만약 result == 1 으로 잡는다면 실제값 자체가 1이 되는 것이 아니므로

 

// result == 1일 때 PRINTF("1"); 으로 쓰면 정상작동하지 않음(오류2)
{
printf("0");
}
else {
printf("1");
}
check = check >> 1;
}
return 0;
}

 

-------------------------------------------------------------------------------------------------------------------------