2023 국가직9급 컴퓨터일반 8번 해설 — C 형변환과 비트 연산

정답 ③번출제 쟁점 C 형변환과 비트 연산발문 옳은 것 고르기

문제

다음 C 프로그램의 출력 결과는? #include <stdio.h> void main() { int x = 0x15213F10 >> 4; char y = (char) x; unsigned char z = (unsigned char) x; printf("%d, %u", y, z); }

  1. -15, 15
  2. -241, 15
  3. -15, 241 ← 정답
  4. -241, 241

선지별 해설

-15, 15

이 선지 진술은 틀림(X)

오른쪽 시프트 뒤 값의 하위 8비트는 0xF1이다. 이를 unsigned char로 보면 241이므로 제시된 결과는 맞지 않는다.

-241, 15

이 선지 진술은 틀림(X)

하위 바이트 0xF1을 부호 있는 8비트 char로 해석하면 일반적으로 -15이다. -241은 8비트 char 범위를 벗어난 값이다.

-15, 241

이 선지 진술은 옳음(O)

0x15213F10을 4비트 오른쪽 이동하면 하위 바이트가 0xF1이다. 2의 보수 signed char에서는 -15, unsigned char에서는 241이다.

-241, 241

이 선지 진술은 틀림(X)

8비트 char의 표현 가능 범위와 하위 바이트 0xF1 해석을 고려하면 signed 값은 -15가 된다. unsigned 값만 241이다.

핵심 요약 (Q&A)

Q. 2023 국가직9급 컴퓨터일반 8번의 핵심 쟁점은 무엇인가?
A. 2023 국가직9급 컴퓨터일반 8번은 C 형변환과 비트 연산에 관한 문항으로, "옳은 것"을 고르는 문제입니다.
Q. 2023 국가직9급 컴퓨터일반 8번의 정답은?
A. 정답은 ③번입니다. 0x15213F10을 4비트 오른쪽 이동하면 하위 바이트가 0xF1이다. 2의 보수 signed char에서는 -15, unsigned char에서는 241이다.
🧩 프로그래밍 개념·기출 모아보기📄 2023 국가직9급 컴퓨터일반 전체 문항✏️ 이 시험 미니문제 풀기
출처: 2023 국가직9급 컴퓨터일반 기출 (원문 보존)해설 기준: 출제 당시 법령·판례 · 개정 사항은 ⚠️ 표시