Hva er en aritmetisk overflyt?
Et aritmetisk overløp er en tilstand som oppstår i datamaskiner, spesielt innen programmering av datamaskiner, når en beregning eller operasjon gir et resultat som er for stort til at lagringssystemet eller registeret kan håndtere. Overløp kan også referere til mengden med det gitte resultatet overstiger minnet som er angitt for lagring. I noen tilfeller kan overløpet av data lagres på et annet datalagringssted; i andre kan det føre til at et program krasjer, kjører sakte eller gir unøyaktige resultater. Aritmetisk overløp er ikke begrenset til full personlige datamaskiner eller forretningsdatamaskiner, da enkle håndholdte kalkulatorer og kommunikasjonsenheter også har grenser for størrelsen på verdiene de kan håndtere.
Programmerere har en tendens til å lære metoder for å håndtere aritmetiske overflow-feil tidlig i utdannelsen, da de har en tendens til å være svært vanlige programmeringsfeil å motta. Det er mange forskjellige metoder for å dele ut aritmetisk overløp. Utformingen av programmet spiller en veldig viktig rolle; et godt designet program som bruker konsistente og korrekte datatyper og lengder, bør ikke oppleve slike feil. Hvis det legges stor vekt på å sjekke rekkefølgen på driften og holde alt konsistent, kan overflødighetsfeil unngås helt.
En annen måte å håndtere aritmetiske overflow-feil på er å dele opp operasjoner i mindre trinn. Det er ofte lettere for et system å håndtere enkle, små operasjoner enn komplekse operasjoner som involverer stort antall og overdreven beregninger. Når det ikke er ekstremt viktig at antallet som returneres er helt nøyaktig, vil det noen ganger være tilstrekkelig å skrive programmet på en slik måte at det varsler brukeren om overløpsfeilen, men returnerer en verdi uansett. Den vanligste måten å håndtere en aritmetisk overflow-feil er å ignorere den fullstendig. Selv om dette vanligvis er ufarlig, kan det gi uriktige resultater og kan kompromittere nytten og effektiviteten til programmet.
Ariane 5 flight 501 illustrerer tydelig farene ved aritmetiske overløpsfeil. Flyturen var den første testkjøringen av det europeiske Ariane 5-utvidbare lanseringssystemet, som gjenbrukte mye av koden fra det gamle Ariane 4-systemet. Akselerasjonen av Ariane 5 var imidlertid betydelig større enn Ariane 4, og programmeringen var ikke tilstrekkelig til å håndtere de større verdiene som trengs. Som sådan forlot raketten sin tiltenkte flyvei 37 sekunder etter oppskytingen og måtte ødelegges. Denne enkle programmeringsfeilen kostet hundrevis av millioner amerikanske dollar.