Αριθμητική υπερχείλιση

Στα ψηφιακά ηλεκτρονικά και στην επιστήμη των υπολογιστών (κυρίως στον προγραμματισμό), αριθμητική υπερχείλιση ή απλούστερα υπερχείληση συμβαίνει όταν μια αριθμητική πράξη επιχειρεί να δημιουργήσει μια αριθμητική τιμή η οποία είναι πάρα πολύ μεγάλη για να αναπαρασταθεί εντός του διαθέσιμου χώρου αποθήκευσης (καταχωρητής ή μνήμη υπολογιστή). Δηλαδή όταν δύο αριθμοί, ο καθένας ν ψηφίων, προστίθενται και το άθροισμα καταλαμβάνει ν+1 ψηφία, τότε έχουμε υπερχείλιση. Ένα πολύ συχνό σφάλμα που προκαλεί υπερχείλιση είναι υπολογίζοντας το αριθμητικό μέσο δύο αριθμών, προσθέτοντάς τους και μετά διαιρώντας τους με το δύο, όπως συμβαίνει στους περισσότερους αλγόριθμους αναζήτησης. Το σφάλμα υπερχείλισης προκαλείται στο άθροισμα (και όχι στον μέσο) το οποίο μπορεί να υπερβαίνει το μέγεθος της μνήμης.Google Research blog: Nearly All Binary Searches and Mergesorts are Broken, Joshua Bloch, 2 June 2006

 Υπερχείλιση 

Το μέγεθος του καταχωρητή ενός επεξεργαστή προσδιορίζει το εύρος των τιμών που μπορούν να αναπαρασταθούν. Τα συνήθη μεγέθη σε δυαδικούς καταχωρητές είναι:

 8 bits: μέγιστη τιμή που μπορεί να αναπαρασταθεί 28 − 1 = 255
 16 bits: μέγιστη τιμή που μπορεί να αναπαρασταθεί 216 − 1 = 65,535
 32 bits: μέγιστη τιμή που μπορεί να αναπαρασταθεί 232 − 1 = 4,294,967,295 (το συνηθέστερο πλάτος στους προσωπικούς υπολογιστές μέχρι το 2005),
 64 bits: μέγιστη τιμή που μπορεί να αναπαρασταθεί 264 − 1 = 18,446,744,073,709,551,615 (το συνηθέστερο πλάτος στους προσωπικούς υπολογιστές, αλλά όχι απαραίτητα και για τα λειτουργικά τους συστήματα, μέχρι και το 2014),
 128 bits: μέγιστη τιμή που μπορεί να αναπαρασταθεί 2128 − 1 = 340,282,366,920,938,463,463,374,607,431,768,211,455

Επειδή μια αριθμητική πράξη μπορεί να έχει ως αποτέλεσμα έναν αριθμό μεγαλύτερο από την μέγιστη τιμή που μπορεί να αναπαρασταθεί, μπορεί να προκληθεί σφάλμα.

 Παραπομπές 

Κατηγορία:Αρχιτεκτονική υπολογιστών