Kaj je aritmetično prelivanje?

Aritmetično prelivanje je pogoj, ki se pojavi v računalnikih, zlasti na področju računalniškega programiranja, ko izračun ali operacija prinese rezultat, ki je prevelik za sistem za shranjevanje ali register, ki bi ga lahko obdelal. Overflow se lahko nanaša tudi na količino po z danim rezultatom presega pomnilnik, določen za shranjevanje. V nekaterih primerih se lahko presežek podatkov shrani na drugo mesto za shranjevanje podatkov; pri drugih lahko povzroči zrušitev programa, počasno delovanje ali netočne rezultate. Aritmetično prelivanje ni omejeno na popolne osebne ali poslovne računalnike, saj imajo preprosti ročni kalkulatorji in komunikacijske naprave tudi omejitve glede velikosti vrednosti, ki jih lahko obvladajo.

Programerji se navadno naučijo metod za obravnavo napak aritmetičnega prelivanja zgodaj v izobraževanju, saj gre za zelo pogoste programske napake. Obstaja veliko različnih metod za oddajo aritmetičnega presežka. Oblikovanje programa igra zelo pomembno vlogo; dobro zasnovan program, ki uporablja dosledne in pravilne vrste podatkov in dolžine, ne bi smel imeti takšnih napak. Če se zelo pazi na preverjanje vrstnega reda operacij in ohranjanje vsega doslednega, se lahko v celoti izognemo napakam pri prelivanju.

Drug način za obravnavo napak aritmetičnega prelivanja je razčlenitev operacij na manjše korake. Sistem je pogosto lažje obvladovati preproste, majhne operacije kot zapletene operacije, ki vključujejo velika števila in pretirane izračune. Kadar ni izjemno pomembno, da je vrnjena številka popolnoma točna, bo včasih dovolj, da program napišete tako, da uporabnika obvesti o napaki prelivanja, a vseeno vrne vrednost. Najpogostejši način za obravnavo napake aritmetičnega prekoračitve je, da jo popolnoma prezrete. Čeprav je to običajno neškodljivo, lahko daje napačne rezultate in lahko ogrozi uporabnost in učinkovitost programa.

Ariane 5 let 501 jasno ponazarja nevarnosti napak pri aritmetičnem prelivu. Let je bil prvi testni zagon evropskega sistema za izstrelitev Ariane 5, ki je ponovno uporabil velik del kode iz starega sistema Ariane 4. Pospešek Ariane 5 pa je bil bistveno večji kot pri Ariane 4, programiranje pa ni bilo primerno za obvladovanje večjih potrebnih vrednosti. Kot taka je raketa zapustila predvideno pot leta 37 sekund po izstrelitvi in ​​jo je bilo treba uničiti. Ta preprosta programska napaka je stala na stotine milijonov ameriških dolarjev.