Co je to celé číslo?
Integer Overflow se týká jevu, který se vyskytuje v určitých typech počítačů, kde se jejich znaky přecházejí z pozitivní na negativní nebo naopak, když dosáhnou konce jejich příslušných rozsahů. V počítačových rozsazích mají celočíselné datové typy kruhové rozsahy a když dosáhnou jednoho konce svého rozsahu, okamžitě se přesunou na druhý konec svého rozsahu. Tomu se také nazývá celočíselné přetečení.
Podepsané celé číslo může mít rozsah hodnot od -2 31 do (2 31 ) - 1. Toto celé číslo nemůže mít hodnotu (-2
Tento přetečení má při programování významné důsledky. Pole může pouze hAve v tom, co v něm umožňuje celočíselný typ, a negativní indexy se nepočítají. Pokud se programátor pokouší vytvořit pole větší, než umožňuje typ celého celého, může dojít k významným chybám paměti, protože přetečení celého celého čísla by mělo za následek negativní index. To je zvláště nebezpečné v jazycích, které nemají explicitní hranice kontroly pole, jako je C ++.
Když dojde k přetečení celého čísla, mohou se objevit související typy přetečení, jako je přetečení pufru, přetečení haldy a přetečení vyrovnávací paměti zásobníku. Ve všech těchto případech se celé týkající se přetečení týká ohromení paměťových struktur s více daty, než tyto struktury mohou mít. Tyto přetoky, v jednoduchých programech, často nedělají mnohem víc, než způsobit neplatnou chybu čtení nebo neplatného zápisu. Manipulace s tímto problémem hackery však může inženýrské chyby paměti, které mohou způsobit vážnější problémy.
Ve většině jednoduchých programů, intPřetečení Eger není hlavní problém. Limity celočíselného typu jsou dostatečně velké, aby se problém přetečení nedostal do hry, pokud se najednou nezvládne mnoho dat. V některých případech lze přetečení přetečení zmírnit, jako v případě přírůstků čítačů, pomocí většího datového typu s větším rozsahem. Větší datový typ by se teoreticky mohl nakonec setkat se stejným problémem s přetečením, ale jak se rozsahy dat zvětšují, šance, že se tak zmenší. Rozsah každého celočíselného datového typu je nejméně dvakrát větší než nejmenší, takže existuje dostatek prostoru pro další data.