Co to jest przepełnienie arytmetyczne?

Przetrzymanie arytmetyczne jest warunkiem występującym w komputerach, szczególnie w obszarze programowania komputerowego, gdy obliczenia lub operacja daje wynik, który jest zbyt duży dla systemu pamięci lub rejestru. Przepełnienie może również odnosić się do kwoty z danym wynikiem przekracza pamięć oznaczoną do przechowywania. W niektórych przypadkach przepełnienie danych może być przechowywane w innej lokalizacji przechowywania danych; W innych może to spowodować awarię programu, uruchamianie powoli lub przynoszenie niedokładnych rezultatów. Przelewy arytmetyczne nie jest ograniczone do pełnych komputerów osobistych lub biznesowych, ponieważ proste kalkulatory ręczne i urządzenia komunikacyjne mają również ograniczenia wartości wartości, które mogą obsłużyć.

Programiści mają tendencję do uczenia się metod radzenia sobie z błędami przepełnienia arytmetycznego na początku ich nauczycieli, ponieważ są one bardzo powszechne błędów programowania. Istnieje wiele różnych metod przekazywania przelewu arytmetycznego. Projekt programu odgrywa bardzo ważną rolę; ADobrze zaprojektowany program, który wykorzystuje spójne i poprawne typy danych i długości, nie powinien doświadczać takich błędów. Jeśli stara się sprawdzić kolejność operacji i zachowując spójność, można całkowicie uniknąć błędów przepełnienia.

Innym sposobem radzenia sobie z błędami przepełnienia arytmetycznego jest podział operacji na mniejsze kroki. Systemowi często łatwiej jest obsługiwać proste, małe operacje niż złożone operacje obejmujące duże liczby i nadmierne obliczenia. Gdy nie jest niezwykle ważne, aby liczba zwrócona była całkowicie dokładna, czasami wystarczy zapisać program w taki sposób, że powiadamia użytkownika o błędach przepełnienia, ale i tak zwraca wartość. Najczęstszym sposobem radzenia sobie z błędem przepełnienia arytmetycznego jest całkowite zignorowanie go. Chociaż jest to zwykle nieszkodliwe, może dawać nieprawidłowe wyniki i może zagrozić przydatności iwydajność programu.

Ariane 5 Flight 501 wyraźnie ilustruje niebezpieczeństwa związane z błędami przepełnienia arytmetycznego. Lot był pierwszym testem europejskiego systemu startowego European Ariane 5, który ponownie wykorzystywał znaczną część kodu ze starego systemu Ariane 4. Przyspieszenie Ariane 5 było jednak znacznie większe niż w Ariane 4, a programowanie nie było wystarczające do obsługi wyższych potrzebnych wartości. W związku z tym rakieta opuściła zamierzoną ścieżkę lotu 37 sekund po wystrzeleniu i musiała zostać zniszczona. Ten prosty błąd programowania kosztuje setki milionów dolarów.

INNE JĘZYKI