오버플로(overflow)는 컴퓨터 과학 및 프로그래밍에서 특정 데이터 타입이 표현할 수 있는 범위를 초과하여 발생하는 상태를 의미한다. 주로 정수형 및 실수형 데이터에서 발생하며, 이는 컴퓨터의 메모리와 관련된 한계 때문이다. 예를 들어, 8비트 정수형 변수는 -128에서 127까지의 값을 표현할 수 있는데, 이 범위를 초과하는 값을 할당하면 오버플로가 발생한다.
오버플로는 두 가지 주요 형태로 나눌 수 있다. 첫 번째는 정수 오버플로(integer overflow)로, 이 경우 큰 양수 또는 음수를 저장하려고 할 때 발생한다. 예를 들어, 255라는 값을 가지는 8비트 부호 없는 정수에 1을 더하면 오버플로가 발생하여 0으로 돌아가는 현상이 일어난다. 두 번째는 실수 오버플로(float overflow)로, 이는 실수의 표현 범위를 초과하는 값을 처리하려 할 때 발생한다. 이런 경우는 소수점 수의 크기가 너무 커져서 더 이상 적절하게 표현할 수 없게 되는 상황이다.
오버플로는 프로그램의 안정성 및 보안을 위협할 수 있으며, 예측하지 못한 행동이나 시스템 오류를 유발할 수 있다. 따라서 이를 방지하기 위한 다양한 방법들이 존재하며, 프로그래머는 변수의 타입과 범위를 정확하게 이해하고 체크함으로써 오버플로를 방지할 필요가 있다.