문제
다음 C 코드의 실행 결과를 쓰시오.
C#include <stdio.h> int main() { unsigned char mask = 0x5A; unsigned char shift = 0x33; unsigned char result = ((mask << 2) & 0xF0) | ((shift >> 1) & 0x0F); printf("%02X", result); return 0; }
정답
69
690x69
해설
mask = 0x5A (01011010), shift = 0x33 (00110011). mask << 2 = 01101000 (0x68), (mask << 2) & 0xF0 = 01100000 (0x60). shift >> 1 = 00011001 (0x19), (shift >> 1) & 0x0F = 00001001 (0x09). 최종 result = 0x60 | 0x09 = 01101001 = 0x69.