오버플로우요~
에다
2023.04.01
학교 과제를 하는데, 오버플로우가 이해가 안가서 이렇게 답답한심정으로 올립니다.
일단 예를 올릴게요.
★ 첫번째
#includestdio.h
main()
{
int complement;
complement =2147483648 + 1; // 31 power +1
printf(%d\n,complement);
}
결과값 : -2147483647
★ 두번째
#includestdio.h
main()
{
int complement;
complement =4294967296 +1; // 32 power +1
printf(%d\n,complement);
}
결과값 : 1
일단 이 두가지 예가 각각 왜 결과값을 저렇게 출력하는지와,
이진수끼리의 합에서 음수와 음수를 더했는데 양수가 나오는 경우 (캐리가 나와서 버리는 경우),
양수와 양수를 더했는데 음수가 나오는 경우
뺄샘에서도 그렇고 어떤 경우를 오버플로우라고 하는지 궁금합니다!
제가 이렇게 이해 못하면 풀릴 때까지 가만히 못있겠어요 ㅠㅠ 제가 쉽게 쉽게 이해할 수 있게 해주세요.
다른 분들도 저에게 설명을 해주셨는데, 잘 모르겠습니다 ㅠㅠ
답변 부탁드려요~