반응형
[정답] 32. 비트 연산자
◈ 기본연습
다음 코드를 실행하였을 때 출력 결과를 예측하고 이유를 설명하세요.
#include <stdio.h>
int main()
{
int a = 0x12345678;
int b = 0xFFFF0000;
int c = 0x0000FFFF;
printf("%#X\n",a&b);//16진수로 출력하고 앞에 0X도 표시
printf("%#X\n",a&c);
return 0;
}
답:
0X12340000
0X5678
▷ 이유
& 는 비트 단위의 AND 연산입니다.
0xFFFF0000은 이진수로1111 1111
1111 1111 0000 0000 0000 0000 입니다.
따라서 16진수 상위 4자리는 그대로 남고 하위 4자리는 모두 0으로 변합니다.
따라서 a&b결과는 0x12340000입니다.
0x0000FFFF는 이진수로 0000 0000
0000 0000 1111 1111 1111 1111 입니다.
따라서 16진수 상위 4자리는 0으로 변하고 하위 4자리는 그대로 남습니다.
따라서 a&c 결과는 0x00005678이며 출력에서 앞에 0은 출력하지 않아 0x5678을 출력합니다.
반응형
'언어 자료구조 알고리즘 > 디딤돌 C언어' 카테고리의 다른 글
[정답] 디딤돌 C언어 38. 정리하기 (연산자) (0) | 2016.04.30 |
---|---|
[정답] 디딤돌 C언어 36. 증감 연산자 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 35. 대입 연산자 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 34. 쉬프트 연산자 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 33. 비트 연산자 ^를 이용한 암호화 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 31. 비교 연산자 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 29. 산술 연산자 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 28. 정리하기 (표준 입출력) (0) | 2016.04.30 |
[정답] 디딤돌 C언어 25. putchar, puts 함수 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 24. printf 함수 (0) | 2016.04.30 |