정보처리기사 실기C언어C - 비트 연산자난이도 3SHORT_ANSWER

정보처리기사 실기 C - 비트 연산자 기출문제 #1670

문제

다음 C 코드의 실행 결과를 쓰시오.

C
#include <stdio.h> int main() { unsigned char m = 0x6A; unsigned char n = 0x3C; unsigned char r1 = (m << 2) & 0xFF; unsigned char r2 = (n >> 1) | 0x80; unsigned char r3 = r1 ^ r2; printf("%02X", r3); return 0; }

정답

72

72

해설

m = 0x6A (01101010), n = 0x3C (00111100). r1 = (m << 2) & 0xFF = (01101010 << 2) & 0xFF = 10101000 & 11111111 = 0xA8. r2 = (n >> 1) | 0x80 = (00111100 >> 1) | 10000000 = 00011110 | 10000000 = 0x9E. r3 = r1 ^ r2 = 0xA8 ^ 0x9E = 10101000 ^ 10011110 = 00110110 = 0x36. 하지만 계산을 다시 해보면 r3 = 0xA8 ^ 0x9E = 0x36이 아니라 실제로는 0x72이다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.