Vad är ett aritmetiskt överflöde?
Ett aritmetiskt överflöde är ett tillstånd som uppstår i datorer, speciellt inom datorprogrammering, när en beräkning eller operation ger ett resultat som är för stort för att lagringssystemet eller registret kan hantera. Överflöde kan också hänvisa till mängden med att det givna resultatet överskrider det minne som är avsedd för lagring. I vissa fall kan överflödet av data lagras på en annan datalagringsplats; i andra kan det göra att ett program kraschar, kör långsamt eller ger felaktiga resultat. Aritmetiskt överflöde är inte begränsat till fullständiga personliga eller affärsdatorer, eftersom enkla handhållna kalkylatorer och kommunikationsenheter också har gränser för storleken på de värden de kan hantera.
Programmerare tenderar att lära sig metoder för att hantera aritmetiska överflödesfel tidigt i sina utbildningar, eftersom de tenderar att vara mycket vanliga programmeringsfel att ta emot. Det finns många olika metoder för att lämna aritmetiskt överflöde. Utformningen av programmet spelar en mycket viktig roll; ett väl utformat program som använder konsekventa och korrekta datatyper och längder bör inte uppleva sådana fel. Om man noggrant försöker kontrollera arbetsordningens ordning och hålla allt konsekvent, kan överflödesfel undvikas helt.
Ett annat sätt att hantera aritmetiska överflödesfel är att dela upp operationerna i mindre steg. Det är ofta lättare för ett system att hantera enkla, små operationer än komplexa operationer som omfattar stort antal och överdrivna beräkningar. När det inte är extremt viktigt att antalet som returneras är helt korrekt räcker det ibland att skriva programmet på ett sådant sätt att det meddelar användaren om överflödesfelet men returnerar ett värde ändå. Det vanligaste sättet att hantera ett aritmetiskt överflödesfel är att ignorera det helt. Även om detta vanligtvis är ofarligt, kan det ge felaktiga resultat och kan äventyra programmets användbarhet och effektivitet.
Ariane 5 flight 501 illustrerar tydligt farorna med aritmetiska överflödesfel. Flygningen var den första testkörningen av det europeiska Ariane 5-uttagbara lanseringssystemet, som återanvände mycket av koden från det gamla Ariane 4-systemet. Accelerationen av Ariane 5 var dock betydligt större än Ariane 4, och programmeringen var inte tillräcklig för att hantera de större värden som behövdes. Som sådan lämnade raketten sin avsedda flygväg 37 sekunder efter lanseringen och var tvungen att förstöras. Detta enkla programmeringsfel kostade hundratals miljoner amerikanska dollar.