다음 C 프로그램의 출력 결과는? (단, char와 unsigned char는 8비트이고 char는 signed로 처리한다.)
#include <stdio.h>
void main()
{
int x = 0x15213F10 >> 4;
char y = (char)x;
unsigned char z = (unsigned char)x;
printf("%d, %u", y, z);
}정답 3번
0x15213F10을 오른쪽으로 4비트 시프트하면 0x015213F1입니다. char는 하위 8비트 0xF1을 부호 있는 값으로 해석하므로 -15가 되고, unsigned char는 같은 비트를 부호 없이해석하므로 241이 됩니다. 따라서 출력은 `-15, 241`입니다.
콘텐츠 정보
- 자료 유형
- 공개 기출
- 검수 상태
- 자동 검사 완료
- 해설 작성·검수
- 정처LAB 자동 검사
- 최종 검수
- 자동 검사 완료