반응형
◈ 기본 연습
1. short 형식의 변수 s를 0x7FFF 값으로 초기화한 후 s 변수에 1을 더하면 10진수로 얼마인지 확인하는 코드를 작성하시오.
그리고 실행한 후 출력 결과의 이유를 설명하시오.
답:
//1. short 형식의 변수 s를 0x7FFF 값으로 초기화
//s 변수에 1을 더하면 10진수로 얼마인지 확인하는 코드를 작성하시오.
//그리고 실행한 후 출력 결과의 이유를 설명하시오.
#include <stdio.h>
int main(void)
{
short s = 0x7FFF;
printf("short s: %d\n",s);
s+=1;
printf("short s: %d\n",s);
return 0;
}
▷ 실행 결과
short s: 32767
short s: -32768
▷ 이유
short 형식의 크기는 2바이트이며 부호있는 정수를 표현하는 형식입니다.
0x7FFF는 이진수로 0111 1111 1111 1111 이며 short로 표현할 수 있는 가장 큰 정수입니다.
여기에 1을 더하면 이진수로 1000 0000 0000 0000 이며 short로 표현할 수 있는 가장 작은 정수입니다.
이러한 현상을 overflow라고 부릅니다.
반응형
'언어 자료구조 알고리즘 > 디딤돌 C언어' 카테고리의 다른 글
[정답] 디딤돌 C언어 28. 정리하기 (표준 입출력) (0) | 2016.04.30 |
---|---|
[정답] 디딤돌 C언어 25. putchar, puts 함수 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 24. printf 함수 (0) | 2016.04.30 |
[정답] 디딤돌 C언어 22. 정리하기 (형식) (0) | 2016.04.29 |
[정답] 디딤돌 C언어 21. 명명법 (0) | 2016.04.29 |
[정답] 디딤돌 C언어 15. ASCII 코드 (0) | 2016.04.29 |
[정답] 디딤돌 C언어 14.부호있는 정수 표현-2진 보수 방식 (0) | 2016.04.29 |
[정답] 디딤돌 C언어 13.부호있는정수표현-1진 보수 방식 (0) | 2016.04.29 |
[정답] 디딤돌 C언어 12. 부호있는정수표현-부호비트필드 (0) | 2016.04.29 |
[정답] 디딤돌 C언어 11. 메모리, 10진수, 2진수, 16진수 (0) | 2016.04.29 |