Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης
Πράξεις με δυαδικούς αριθμούς Δυαδικοί Αριθμοί Ο υπολογιστής μπορεί να εκτελέσει Λογικές πράξεις Αριθμητικές πράξεις Οι πράξεις εκτελούνται Σε ομάδες bits (bytes ή πολλαπλάσιά τους) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 2
Το Byte ως δυαδικός αριθμός Δυαδικοί αριθμοί το περισσότερο σημαντικό bit! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2 28 64 32 6 8 4 2 2 7 2 6 2 5 2 4 2 3 2 2 2 2 bit 7 x28 bit 6 x64 bit 5 x32 bit 4 x6 bit 3 x8 bit 2 x4 bit x2 Μετατροπή από το δυαδικό στο δεκαδικό σύστημα bit x 28 + 64 + 32 + 6 + + + 2 + = 243 (δεκαδικό) το λιγότερο σημαντικό bit Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 3
Μετατροπή δεκαδικού σε δυαδικό Δυαδικοί αριθμοί! το λιγότερο σημαντικό bit Προσοχή στη θέση του περισσότερο σημαντικού bit! 243 2 2 2 2 6 243 (δεκαδικό) = 2 3 2 5 2 7 2 3 το περισσότερο σημαντικό bit Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 4
Δεκαεξαδικό Σύστημα Δυαδικοί αριθμοί 6 ψηφία,, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Αντιστοιχία με τους δεκαδικούς έως 5 Σε δυνάμεις του 6 6 n...6 4 6 3 6 2 6 6 Π.χ. 6F(hex) = x6 2 + 6x6 + 5x6 = 256 + 96 + 5 = 367 (δεκαδικό) Χρήσιμο μόνο ως συντομογραφία δυαδικών αριθμών Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 5
Δεκαεξαδικό Σύστημα Δυαδικοί αριθμοί Κάθε 4 δυαδικά ψηφία αντιστοιχούν σε ένα δεκαεξαδικό! 2 3 4 5 6 7 8 9 A B C D E F Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 6
Παράδειγμα στο δεκαεξαδικό σύστημα Δυαδικοί αριθμοί Παράδειγμα: C 9 9 4 = C994(hex) Παράδειγμα: 2 5 E = 25E (hex) Συμπλήρωση με στα αριστερά Δεν αλλάζει τον αριθμό, όπως ακριβώς και στο δεκαδικό σύστημα Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 7
Φυσικοί αριθμοί (χωρίς πρόσημο) Δυαδικοί αριθμοί Φυσικοί αριθμοί Άμεση αντιστοιχία Με n bits περιγράφονται.. Οι φυσικοί αριθμοί από έως και 2 n - 2 3 4 5 6 7 8 9 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 8
Ποια η χρήση των φυσικών αριθμών ; Δυαδικοί αριθμοί Φυσικοί αριθμοί Για αναπαράσταση Διαφορετικών πραγμάτων Συνήθως χωρίς αριθμητική έννοια Αν και η ταξινόμηση είναι bonus! Απαρίθμηση! Παρέχοντας μοναδικούς αναγνωριστικούς αριθμούς Παραδείγματα Οι ξεχωριστές διευθύνσεις μνήμης Οι χαρακτήρες σε ένα αλφάβητο Ξανά: με n bits απαριθμούνται έως και 2 n διαφορετικά πράγματα Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 9
Ακέραιοι αριθμοί (με πρόσημο) Δυαδικοί αριθμοί Φυσικοί αριθμοί Ακέραιοι Πώς θα αναπαρασταθούν οι αρνητικοί; Για να γίνονται εύκολα οι πράξεις! Όχι καλή ιδέα: Ξεχωριστό bit πρόσημου Αριθμός (Ν bits) Πρόσημο ( bit) (/) Διάστημα τιμών για αριθμούς με n bits -(2 n- -) έως +(2 n- -) (για n=8, 27... +27) ένα χρήσιμο bit λιγότερο δυσκολία στις πράξεις 2 αναπαραστάσεις του ; Μέγεθος (Ν- bits) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς
Ακέραιοι αριθμοί (προσημασμένοι - signed) Δυαδικοί αριθμοί Φυσικοί αριθμοί Ακέραιοι Επίσης όχι καλή ιδέα: Συμπλήρωμα ως προς αντιστροφή όλων των bits του αριθμού Πιο σημαντικό bit: για θετικούς, για αρνητικούς Διάστημα τιμών για αριθμούς με n bits -(2 n- -) έως +(2 n- -) (γιατί;) Τα ίδια προβλήματα με την χρήση ξεχωριστού bit πρόσημου! Καλή ιδέα! Συμπλήρωμα ως προς 2 Πώς υπολογίζεται; Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς
Συμπλήρωμα ως προς 2 Δυαδικοί αριθμοί Φυσικοί αριθμοί Ακέραιοι Ίσο με το συμπλήρωμα ως προς + εμπειρικός κανόνας αντιστροφή όλων των bits εκτός από τα δεξιότερα συνεχόμενα και το πρώτο αριστερά από αυτά Προσοχή στο (και το...) Συμπλήρωμα ως προς 2: παραδείγματα Προσοχή: Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 2
Ακέραιοι σε συμπλήρωμα ως προς 2 Δυαδικοί αριθμοί Φυσικοί αριθμοί Ακέραιοι Διάστημα τιμών για αριθμούς με n bits -(2 n- ) έως +(2 n- -) (για n=8, 28... +27) Μόνο το +(2 n- ) δεν μπορεί να αναπαρασταθεί Ευκολία στις πράξεις αφαίρεση = πρόσθεση του συμπληρώματος ως προς 2 Μία και μοναδική αναπαράσταση του Πιο σημαντικό bit: για θετικούς, για αρνητικούς Δεν είναι όμως bit προσήμου!!! Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 3
Κλασματικοί αριθμοί Δυαδικοί αριθμοί Φυσικοί αριθμοί Ακέραιοι Κλασματικοί Θεωρητικά: Θα μπορούσαμε να επεξεργαζόμαστε ξεχωριστά το ακέραιο και το κλασματικό μέρος Αλλά: Δυσκολία στις πράξεις απώλεια ακρίβειας κατά τις διαιρέσεις Αδυναμία αναπαράστασης πολύ μεγάλων και πολύ μικρών αριθμών Η λύση: Αριθμοί κινητής υποδιαστολής (floating point) Εύκολη αναπαράσταση τόσο του... όσο και του, Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 4
Αριθμοί κινητής υποδιαστολής Δυαδικοί αριθμοί Φυσικοί αριθμοί Ακέραιοι Κλασματικοί 3 μέρη Πρόσημο (Π) ( bit) = + = - Εκθέτης (Ε) (8 ή bits) Η βάση είναι το 2 (εννοείται) Θετικοί και αρνητικοί εκθέτες με πλεόνασμα 27 ή 23 (π.χ. αντί -55, Ε= -55+27 = 72! ) Σημαινόμενο τμήμα (Σ) (23 ή 52 bits) Κανονικοποίηση: μορφή,xxxxxxxxxxxxx Το, εννοείται και δεν αποθηκεύεται Τελικός αριθμός: - Π x.σ x 2 E-27 (ή 2 E-23) Ειδικοί αριθμοί:,, NaN (Not a Number) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 5
Αριθμητικές πράξεις Αριθμητικές πράξεις Οι βασικές πράξεις Πρόσθεση Αφαίρεση Άλλες πράξεις Πολλαπλασιασμός Διαίρεση Επίσης: Τετραγωνική ρίζα, τριγωνομετρικές συναρτήσεις, εκθετικά, λογάριθμοι κλπ.. Υλοποίηση σε υλικό με διάφορες τεχνικές Π.χ με πολυώνυμα Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 6
Προσθέτοντας 2 bits Αριθμητικές πράξεις bits + + + + άθροισμα κρατούμενο Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 7
Ημιαθροιστής (half-adder) Αριθμητικές πράξεις A B άθροισμα (SUM) A B S C ; κρατούμενο (CARRY) Αν απαιτείται πρόσθεση αριθμών με περισσότερα bits; Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 8
Προσθέτοντας δυαδικούς αριθμούς (μη προσημασμένους) Κρατούμενο Α Αριθμός (9) Β Αριθμός ( 88) Άθροισμα (27). Αριθμοί με ίδιο μήκος (ίσος αριθμός bits) 2. Αρχίζοντας από το λιγότερο σημαντικό bit (το δεξιότερο) 3. Προσθέτουμε ζεύγη bits και μεταφέρουμε το κρατούμενο (αν υπάρχει) προς τα αριστερά Το προσθέτουμε στο επόμενο ζεύγος bits Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 9
Πλήρης αθροιστής (full-adder) Αριθμητικές πράξεις Μία από τις πιθανές υλοποιήσεις με δύο ημιαθροιστές ; A B κρατούμενο εισόδου (Carry in) άθροισμα (SUM) Ποιος πίνακας αλήθειας υλοποιείται; Μπορεί η πύλη OR να αντικατασταθεί από XOR; κρατούμενο εξόδου (Carry out) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 2
Πρόσθεση αριθμών με πλήρεις αθροιστές Αριθμητικές πράξεις A B Cin Πλήρης αθροιστής S Cout A2 B2 Cin Πλήρης αθροιστής S2 Cout Πολλαπλά τμήματα πλήρη αθροιστή Όμως: πόσο γρήγορα διαδίδεται το κρατούμενο; (ripple carry) Τεχνικές πρόβλεψης κρατουμένου (carry lookahead) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 2
Προσθέτοντας δυαδικούς αριθμούς (μη προσημασμένους) Υπερχείλιση Στον υπολογιστή το πλήθος των bits ανά αριθμό είναι προκαθορισμένο Το αποτέλεσμα της πρόσθεσης θα πρέπει να χωρά στα διαθέσιμα bits ενός καταχωρητή Μη προσημασμένοι αριθμοί: αριθμός με Ν bits πεδίο τιμών [... 2 Ν - ] π.χ. για αριθμούς με 8 bits, από έως 255 Κρατούμενο Α Αριθμός (8) Β Αριθμός ( 78) Άθροισμα (258) ύπαρξη τελικού κρατουμένου = υπερχείλιση διαθέσιμος χώρος Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 22
Προσθέτοντας δυαδικούς αριθμούς (προσημασμένους) Προσημασμένοι ακέραιοι Συμπλήρωμα ως προς 2 Το περισσότερο σημαντικό bit υποδηλώνει το πρόσημο =θετικός, =αρνητικός αριθμός με Ν bits πεδίο τιμών [ -2 Ν-... +2 Ν- - ] π.χ. για αριθμούς με 8 bits, από -28 έως +27 Πρόσθεση Όπως σε μη προσημασμένους Τελικό κρατούμενο αγνοείται Πώς γίνεται τώρα ο έλεγχος υπερχείλισης; Αφαίρεση = πρόσθεση του συμπληρώματος ως προς 2 του αφαιρετέου Α Β = Α + (-Β) χωρίς πρόσθετα κυκλώματα για την αφαίρεση! Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 23
Προσθέτοντας δυαδικούς αριθμούς (προσημασμένους) Κρατούμενο Α Αριθμός (+7) Β Αριθμός (+22) Άθροισμα (+39) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 24
Προσθέτοντας δυαδικούς αριθμούς (προσημασμένους) Κρατούμενο Α Αριθμός (+24) Β Αριθμός (-7) Άθροισμα ( +7) το κρατούμενο αγνοείται Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 25
Υπερχείλιση σε προσημασμένους αριθμούς (-) () προσημασμένοι αριθμοί με 8 bits (-64) αρνητικοί θετικοί (+63) (-28) (+27) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 26
Υπερχείλιση σε προσημασμένους αριθμούς Κρατούμενο Α Αριθμός (+27) Β Αριθμός ( +3) Άθροισμα (-26;) Το άθροισμα αριθμών με ίδιο πρόσημο θα πρέπει να έχει επίσης το ίδιο πρόσημο! στην αντίθετη περίπτωση: υπερχείλιση Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 27
Υπερχείλιση σε προσημασμένους αριθμούς Κρατούμενο Α Αριθμός (-26) Β Αριθμός ( -5) Άθροισμα (+24;) Το άθροισμα αριθμών με ίδιο πρόσημο θα πρέπει να έχει επίσης το ίδιο πρόσημο! στην αντίθετη περίπτωση: υπερχείλιση πώς θα ήταν ένα κύκλωμα με πύλες για ανίχνευση υπερχείλισης; Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 28
Πράξεις με αριθμούς κινητής υποδιαστολής Αριθμητικές πράξεις Σύνθετη διαδικασία Η γενική μορφή της πρόσθεσης:. Σύγκριση προσήμων αν είναι ίδια πρόσθεση αλλιώς αφαίρεση 2. Εξίσωση εκθετών μετακίνηση υποδιαστολής 3. Πρόσθεση ή αφαίρεση σημαινόμενων τμημάτων ακέραιο και κλασματικό μέρος 4. Κανονικοποίηση αποτελέσματος 5. Έλεγχος για υπερχείλιση Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 29
Πράξεις με αριθμούς κινητής υποδιαστολής 32 Α αριθμός: + 2 32-27 x, ( +2 5 x, ) 3 B αριθμός: + 2 3-27 x, ( +2 3 x, ) A +2 5 x, + B +2 5 x, = +2 5 x, κανονικοποίηση +2 6 x, αποτέλεσμα: Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις 33 με δυαδικούς αριθμούς 3