← 회차 전체 문제정처LAB 자체 제작내용 검수 완료정처LAB 정보처리기사 필기 자체 제작 3회 · 프로그래밍 언어 활용 · 비트 연산 · 78번
다음 8비트 왼쪽 회전 코드의 출력은?
uint8_t x = 0x81;
uint8_t y = (uint8_t)((uint8_t)(x << 1) | (x >> 7));
printf("0x%02X", y);
- 1
0x01
오답 이유0x01은 기존 최상위 비트를 최하위로 옮긴 값만 남기고, 왼쪽 이동으로 생긴 0x02를 누락한 결과다. - 2
0x03
정답 근거0x81의 하위 8비트 왼쪽 이동은 0x02이고 `x>>7`은 0x01이므로 OR 결과 0x03이 정답이다. - 3
0x81
오답 이유0x81은 회전 전 원래 값이다. 최상위 비트와 나머지 비트의 위치가 모두 바뀐다. - 4
0xC0
오답 이유0xC0은 오른쪽 회전이나 산술 이동을 혼동한 형태다. 코드는 unsigned 8비트 값을 왼쪽으로 한 칸 회전한다.
정답·상세해설정답 2번
0x81을 왼쪽으로 한 비트 이동한 하위 8비트는 0x02이고, 최상위 비트를 `x>>7`로 꺼내면 0x01이다. 두 값을 OR한 8비트 왼쪽 회전 결과는 0x03이다.
콘텐츠 기록콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 최종 검수
- 2026-08-16