IT/IT

overflow

iamhyeon 2024. 9. 13. 11:43

overflow (오버플로우) 현상

 

- 데이터 타입이 저장할 수 있는 범위를 초과하는 값을 계산하거나 저장할 때 발생하는 문제

- 예를 들어, 정수형 변수는 정해진 비트 수만큼의 값을 저장할 수 있는데, 그 범위를 넘어서면 값이 잘못되거나 예기치 않은 결과가 발생한다

- 예를 들어, 8비트 정수형 변수는 -128에서 127까지의 값을 저장할 수 있다.

만약 이 범위를 넘어서는 값을 저장하려고 하면 오버플로우가 발생한다.

예를 들어, 127에 1을 더하면 결과가 -128로 돌아가게 된다.

이는 8비트 정수의 비트가 순환하기 때문이다

- 다른 예로, 32비트 정수형에서는 약 -21억에서 21억까지의 값을 저장할 수 있다.

이 범위를 초과하면 오버플로우가 발생하고, 결과가 예기치 않게 변할 수 있다.

오버플로우는 다음과 같은 상황에서 발생할 수 있다:
1. **산술 연산**: 두 수를 더하거나 곱하는 과정에서 오버플로우가 발생할 수 있다.
2. **배열 접근**: 배열의 인덱스가 배열의 크기를 초과할 때 오버플로우가 발생할 수 있다.
3. **버퍼 오버플로우**: 입력 데이터가 버퍼의 크기를 초과할 때 발생하며, 보안 취약점을 초래할 수 있다.

오버플로우를 방지하기 위해서는 데이터 타입의 범위를 정확히 이해하고, 연산 전에 범위를 체크하거나, 필요한 경우 더 큰 데이터 타입을 사용하는 것이 좋다.

반응형

'IT > IT' 카테고리의 다른 글

서버 클라이언트  (1) 2024.10.01
HTTP  (0) 2024.09.30
API  (0) 2024.09.05
Chrome 확장 프로그램  (0) 2024.09.05
CDN  (2) 2024.09.04