Vad är ett heltal överflöde?

Heltalsöverskridande hänvisar till fenomenet som förekommer i vissa datordatatyper där deras tecken växlar från positivt till negativt, eller tvärtom, när de når ändarna på deras tillämpliga intervall. I datorområden har heltalsdatatyper cirkulära intervall, och när de når ena änden av sitt intervall, flyttar de omedelbart till den andra änden av sitt intervall. Detta kallas också heltalöverskridning.

Ett signerat heltal kan innehålla ett intervall av 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 dess intervall är ett exempel på heltalsöverskridning. På samma sätt kan ett heltal inte ha ett värde på 2 31 ; detta värde skulle istället byta till den andra änden av sitt intervall och bli -2 31 .

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

När heltalöverskridning inträffar kan relaterade typer av överflöde, såsom buffertöverskridning, högöversvämning och stapelbuffertöverskridning uppstå. I alla dessa fall verkar heltalets överflöde för att överväldra minnesstrukturer med mer data än de strukturerna kan tänkas innehålla. Dessa överflöden, i enkla program, gör ofta inte mycket mer än orsakar ett ogiltigt läs eller ogiltigt skrivfel. Manipulering av detta problem av hackare kan dock konstruera minnesfel som kan orsaka allvarligare problem.

I de flesta enkla program är heltalöverskridning inte ett stort problem. Gränserna för heltalstypen är tillräckligt stora för att översvämningsproblemet inte kommer att spelas om inte mycket data hanteras på en gång. I vissa fall kan översvämningen 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 stöta på samma översvämningsproblem, men när datatypsområdena blir större, blir chansen att göra det mindre. Varje heltaldatatyps intervall är minst två gånger storleken på nästa minsta, så det finns gott om utrymme för ytterligare data.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?