Hvad er et heltal-overløb?

Heltaloverløb henviser til det fænomen, der forekommer i bestemte computerdatatyper, hvor deres tegn skifter fra positive til negative, eller omvendt, når de når enderne på deres anvendelige intervaller. I computerintervaller har heltal datatyper cirkulære intervaller, og når de når den ene ende af deres interval, flytter de straks til den anden ende af deres interval. Dette kaldes også heltaloverløb.

Et signeret heltal kan indeholde et interval af værdier fra -2 31 til (2 31 ) - 1. Dette heltal kan ikke have en værdi på (-2 31 ) - 1; snarere er det næste nummer, det øges til, i den anden ende af sit interval: (2 31 - 1). Ændringen fra negativ til positiv i slutningen af ​​dets interval er et eksempel på heltaloverløb. På samme måde kan et heltal ikke have en værdi på 2 31 ; denne værdi skiftes i stedet til den anden ende af sit interval og bliver -2 31 .

Denne overløb har betydelige konsekvenser under programmeringen. En matrix kan kun have så mange indekser som det heltalstype tillader, og negative indeks tæller ikke. Hvis en programmør forsøger at oprette en matrix større end det heltalstype tillader det, kan der opstå betydelige hukommelsesfejl, fordi heltaloverløb resulterer i et negativt indeks. Dette er især farligt på sprog, der ikke har eksplicit grænsekontrol for arrays, som C ++.

Når heltaloverløb forekommer, kan der forekomme relaterede typer overløb, såsom bufferoverløb, bunkeoverløb og stakbufferoverløb. I alle disse tilfælde fungerer heltalets overløb til at overvælde hukommelsesstrukturer med flere data, end disse strukturer kan forestille sig. Disse overløb, i enkle programmer, gør ofte ikke meget mere end at forårsage en ugyldig læse- eller ugyldig skrivefejl. Manipulation af dette problem af hackere kan imidlertid konstruere hukommelsesfejl, der kan forårsage mere alvorlige problemer.

I de fleste enkle programmer er heltaloverløb ikke et stort problem. Grænserne for heltalstypen er tilstrækkelig store til, at overløbsproblemet ikke kommer i spil, medmindre en masse data håndteres på én gang. I nogle tilfælde kan overløb reduceres, ligesom i tilfælde af stigende tællere, ved at bruge en større datatype med et større interval. Den større datatype kan i teorien i sidste ende støde på det samme overløbsproblem, men når datatypeområderne bliver større, bliver chancerne for at gøre det mindre. Hver række for heltaldatatypen er mindst dobbelt så stor som den næste mindste, så der er god plads til yderligere data.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?