C 언어 기초
uint8_t r = 0x5A;
r |= 0x01;
r &= ~0x10;
r ^= 0x0F;
printf("0x%02X\n", r);uint8_t는 8비트의 부호 없는 정수형이다. 위의 코드를 실행했을 때의 출력으로 올바른 것은?
- A0x44
- B0x4F
- C0x54
정답과 해설 보기
정답: A. 0x44
0x5A는 2진수로 0101 1010입니다. |= 0x01로 비트 0을 1로 만들어 0101 1011(0x5B), &= ~0x10으로 비트 4를 0으로 만들어 0100 1011(0x4B)이 됩니다. 마지막 ^= 0x0F는 하위 4비트를 반전하므로 0100 0100, 즉 0x44가 됩니다. |는 비트를 1로 만들고, &와 ~의 조합은 비트를 0으로 만들며, ^는 비트를 반전한다는 식으로 구분해서 사용합니다.