정수 오버플로 란 무엇입니까?
정수 오버플로는 적용 가능한 범위의 끝에 도달 할 때 표지판이 양수에서 음수로 전환되는 특정 컴퓨터 데이터 유형에서 발생하는 현상을 나타냅니다. 컴퓨터 범위에서 정수 데이터 유형에는 원형 범위가 있으며 범위의 한쪽 끝에 도달하면 즉시 범위의 다른 쪽 끝으로 이동합니다. 이것을 정수 오버플로라고도합니다.
서명 된 정수는 -2
이 오버플로는 프로그래밍하는 동안 중요한 결과를 초래합니다. 배열은 h 만 할 수 있습니다정수 유형이 허용하는 것만 큼 많은 지수를 ave하고 음수 지수는 계산하지 않습니다. 프로그래머가 정수 유형보다 큰 배열을 생성하려고 시도하면 정수 오버플로가 음수 인덱스를 초래하기 때문에 중요한 메모리 오류가 발생할 수 있습니다. 이것은 C ++와 같은 어레이를 점검하는 명시 적 경계가없는 언어에서 특히 위험합니다.
정수 오버플로가 발생하면 버퍼 오버플로, 힙 오버 플로우 및 스택 버퍼 오버 플로우와 같은 관련 오버플로가 발생할 수 있습니다. 이러한 모든 경우에, 정수 오버플로는 해당 구조가 상상할 수있는 것보다 더 많은 데이터로 메모리 구조를 압도하는 역할을합니다. 간단한 프로그램에서 이러한 오버 플로우는 종종 유효하지 않은 읽기 또는 잘못된 쓰기 오류를 일으키는 것 이상을 일으키지 않습니다. 그러나 해커 의이 문제 조작은 더 심각한 문제를 일으킬 수있는 메모리 오류를 설계 할 수 있습니다.
대부분의 간단한 프로그램에서 intEger Overflow는 큰 문제가 아닙니다. 정수 유형의 한계는 많은 데이터가 한 번에 처리되지 않으면 오버플로 문제가 작동하지 않을 정도로 충분히 크다. 경우에 따라 카운터 증가의 경우 더 넓은 범위의 더 큰 데이터 유형을 사용하여 오버 플로우를 완화 할 수 있습니다. 이론적으로는 더 큰 데이터 유형이 결국 동일한 오버플로 문제를 겪을 수 있지만 데이터 유형 범위가 커짐에 따라 수행 할 가능성은 점점 작아집니다. 각 정수 데이터 유형의 범위는 다음으로 가장 작은 크기의 두 배 이상이므로 추가 데이터를위한 충분한 공간이 있습니다.