언어 자료구조 알고리즘/디딤돌 C언어
[정답] 디딤돌 C언어 32. 비트 연산자
언제나휴일
2016. 4. 30. 09:56
반응형
[정답] 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을 출력합니다.
반응형