정수형의 오버플로우

정순동·2023년 11월 23일
0

자바기초

목록 보기
7/89

오버플로우

오버플로우란? 연산과정에서 해당 타입이 표현할 수 있는 값의 범위를 넘어서는 것을 오버플로우(overflow)라고 한다. 오버플로우가 발생했다고 해서 에러가 발생하는 것은 아니지만 예상했던 결과를 한참 벗어나는 값을 얻게 된다.

만약 4 bit 2진수의 최대값인 1111(deci = 15)에 1을 더하면 어떻게 될까?
0001 0000이 되겠지만 4 bit 2진수이기 때문에 앞에0001을 제외한 0000 즉 0이 돼버린다.
반대로 4 bit 2진수의 최소값인 0000에서 1을 빼면 어떻게 될까?
이는 앞에 1이 있는것으로 간주하고 빼기때문에 오히려 1111이 된다.

부호가 있는 경우 보통은 맨 앞자리 수가 0이면 양수 1이면 음수로 표기하게 되는데 이런경우 최소값과 최대값의 차이에 의해 오버플로우가 일어나는 시점이 다른것을 알 수 있다.

0개의 댓글