언어 자료구조 알고리즘/디딤돌 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 출력합니다.



본문: 32. 비트 연산자


반응형