Skip to main content

Vad är ett heltal överflöde?

Integer Overflow hänvisar till fenomenet som förekommer i vissa datatyper där deras tecken växlar från positiva till negativa, eller vice versa, när de når ändarna på sina tillämpliga intervall.I datorintervall har heltaldatatyper cirkulära intervall, och när de når den ena änden av sitt sortiment flyttar de omedelbart till den andra änden av sitt sortiment.Detta kallas också heltalsöverflöd.

Ett signerat heltal kan innehålla ett antal värden från -2 31 till (2 31 ) - 1. Detta heltal kan inte ha ett värde på (-2 31 ) - 1;Snarare är nästa nummer som det ökar till i den andra änden av sitt intervall: (2 31 - 1).Förändringen från negativ till positiv i slutet av sitt intervall är ett exempel på heltalsöverflöd.På samma sätt kan ett heltal inte ha ett värde av 2 31 ;Detta värde skulle istället växla till den andra änden av sitt intervall och bli -2 31 .

Detta överflöde har betydande konsekvenser under programmering.En matris kan bara ha så många index i det som heltalstypen tillåter, och negativa index räknas inte.Om en programmerare försöker skapa en matris som är större än heltalstypen tillåter, kan betydande minnesfel uppstå eftersom heltalsöverskridning skulle resultera i ett negativt index.Detta är särskilt farligt i språk som inte har uttryckliga gränser som kontrollerar för matriser, som C ++.

När överflöd av heltal inträffar kan relaterade typer av överflöd som buffertöverflöd, överflöd av hög och stapelbuffert uppstå.I alla dessa fall fungerar heltalet över att överväldiga minnesstrukturer med mer data än dessa strukturer kan tänkas hålla.Dessa överflöden, i enkla program, gör inte ofta mycket mer än att orsaka ett ogiltigt läs- eller ogiltigt skrivfel.Manipulation av detta problem av hackare kan dock konstruera minnesfel som kan orsaka allvarligare problem.

I de flesta enkla program är heltalsöverflöd inte ett stort problem.Gränserna för heltalstypen är tillräckligt stora för att översvämningsproblemet inte spelar in om inte mycket data hanteras på en gång.I vissa fall kan översvämning mildras, som i fallet med ökande räknare, genom att använda en större datatyp med ett större intervall.Den större datatypen kan i teorin så småningom möta samma överflödesproblem, men när datatypsintervallen blir större blir chansen att göra det mindre.Varje heltal datatyper är minst dubbelt så stor som nästa minsta, så det finns gott om utrymme för ytterligare data.