주어진 정수형 데이터의 메모리상의 표현(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;
}
-------------------------------------------------------------------------------------------------------------------------
'c&c++' 카테고리의 다른 글
정수형 데이터를 n비트 오른쪽으로 shift (0) | 2021.09.14 |
---|---|
16진수 입력을 10진수로 출력하는 코드 작성 (0) | 2021.09.14 |
헷갈릴 수 있는 자료형의 변환 (0) | 2021.09.14 |
C Tutorial (0) | 2021.09.13 |
서식문자의 종류와 의미 (0) | 2021.09.10 |