Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 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 το λιγότερο σημαντικό bit! Προσοχή στη θέση του περισσότερο σημαντικού bit! 243 2 2 2 6 2 243 (δεκαδικό) = 2 3 5 2 7 2 3 2 το περισσότερο σημαντικό bit Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 3 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 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 (δεκαδικό) Χρήσιμο μόνο ως συντομογραφία δυαδικών αριθμών Κάθε 4 δυαδικά ψηφία αντιστοιχούν σε ένα δεκαεξαδικό! 2 3 4 5 6 7 8 9 A B C D E F Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 5 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 6 Παράδειγμα στο δεκαεξαδικό σύστημα Φυσικοί (χωρίς πρόσημο) Παράδειγμα: C 9 9 4 = C994(hex) Παράδειγμα: 2 5 E = 25E (hex) Συμπλήρωση με στα αριστερά Δεν αλλάζει τον αριθμό, όπως ακριβώς και στο δεκαδικό σύστημα Φυσικοί Άμεση αντιστοιχία Με n bits περιγράφονται.. Οι φυσικοί από έως και 2 n - 2 3 4 5 6 7 8 9 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 7 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 8
Ποια η χρήση των φυσικών αριθμών ; Ακέραιοι (με πρόσημο) Φυσικοί Για αναπαράσταση Διαφορετικών πραγμάτων Συνήθως χωρίς αριθμητική έννοια Αν και η ταξινόμηση είναι bonus! Απαρίθμηση! Παρέχοντας μοναδικούς αναγνωριστικούς αριθμούς Παραδείγματα Οι ξεχωριστές διευθύνσεις μνήμης Οι χαρακτήρες σε ένα αλφάβητο Ξανά: με n bits απαριθμούνται έως και 2 n διαφορετικά πράγματα Φυσικοί Πώς θα αναπαρασταθούν οι αρνητικοί; Για να γίνονται εύκολα οι! Όχι καλή ιδέα: Ξεχωριστό bit πρόσημου Πρόσημο ( bit) (/) Διάστημα τιμών για αριθμούς με n bits -(2 n- -) έως +(2 n- -) (για n=8, 27... +27) ένα χρήσιμο bit λιγότερο δυσκολία στις 2 αναπαραστάσεις του ; Αριθμός (Ν bits) Μέγεθος (Ν- bits) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 9 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς Ακέραιοι (προσημασμένοι - signed) Συμπλήρωμα ως προς 2 Φυσικοί Επίσης όχι καλή ιδέα: Συμπλήρωμα ως προς αντιστροφή όλων των bits του αριθμού Πιο σημαντικό bit: για θετικούς, για αρνητικούς Διάστημα τιμών για αριθμούς με n bits -(2 n- -) έως +(2 n- -) (γιατί;) Τα ίδια προβλήματα με την χρήση ξεχωριστού bit πρόσημου! Καλή ιδέα! Συμπλήρωμα ως προς 2 Πώς υπολογίζεται; Φυσικοί Ίσο με το συμπλήρωμα ως προς + εμπειρικός κανόνας αντιστροφή όλων των bits εκτός από τα δεξιότερα συνεχόμενα και το πρώτο αριστερά από αυτά Προσοχή στο (και το...) Συμπλήρωμα ως προς 2: παραδείγματα Προσοχή: Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 2
Ακέραιοι σε συμπλήρωμα ως προς 2 Κλασματικοί Φυσικοί Διάστημα τιμών για αριθμούς με n bits -(2 n- ) έως +(2 n- -) (για n=8, 28... +27) Μόνο το +(2 n- ) δεν μπορεί να αναπαρασταθεί Ευκολία στις αφαίρεση = πρόσθεση του συμπληρώματος ως προς 2 Μία και μοναδική αναπαράσταση του Πιο σημαντικό bit: για θετικούς, για αρνητικούς Δεν είναι όμως bit προσήμου!!! Φυσικοί Κλασματικοί Θεωρητικά: Θα μπορούσαμε να επεξεργαζόμαστε ξεχωριστά το ακέραιο και το κλασματικό μέρος Αλλά: Δυσκολία στις απώλεια ακρίβειας κατά τις διαιρέσεις Αδυναμία αναπαράστασης πολύ μεγάλων και πολύ μικρών αριθμών Η λύση: Αριθμοί κινητής υποδιαστολής (floating point) Εύκολη αναπαράσταση τόσο του... όσο και του, Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 3 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 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 Ημιαθροιστής (half-adder) bits + + άθροισμα κρατούμενο A B άθροισμα (SUM) A B S C + + ; Αν απαιτείται πρόσθεση αριθμών με περισσότερα bits; κρατούμενο (CARRY) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 7 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 8 Προσθέτοντας δυαδικούς αριθμούς (μη προσημασμένους) Κρατούμενο Α Αριθμός (9) Β Αριθμός ( 88) Άθροισμα (27). Αριθμοί με ίδιο μήκος (ίσος αριθμός bits) 2. Αρχίζοντας από το λιγότερο σημαντικό bit (το δεξιότερο) 3. Προσθέτουμε ζεύγη bits και μεταφέρουμε το κρατούμενο (αν υπάρχει) προς τα αριστερά Το προσθέτουμε στο επόμενο ζεύγος bits ; Ποιος πίνακας αλήθειας υλοποιείται; Μπορεί η πύλη OR να αντικατασταθεί από XOR; Πλήρης αθροιστής (full-adder) Μία από τις πιθανές υλοποιήσεις με δύο ημιαθροιστές A B κρατούμενο εισόδου (Carry in) άθροισμα (SUM) κρατούμενο εξόδου (Carry out) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 9 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 2
Πρόσθεση αριθμών με πλήρεις αθροιστές A B Cin Πλήρης αθροιστής Πολλαπλά τμήματα πλήρη αθροιστή Όμως: πόσο γρήγορα διαδίδεται το κρατούμενο; (ripple carry) Τεχνικές πρόβλεψης κρατουμένου (carry lookahead) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 2 A2 B2 Cin S Cout Πλήρης αθροιστής S2 Cout Προσθέτοντας δυαδικούς αριθμούς (μη προσημασμένους) Υπερχείλιση Στον υπολογιστή το πλήθος των bits ανά αριθμό είναι προκαθορισμένο Το αποτέλεσμα της πρόσθεσης θα πρέπει να χωρά στα διαθέσιμα bits ενός καταχωρητή Μη προσημασμένοι : αριθμός με Ν bits πεδίο τιμών [... 2 Ν - ] π.χ. για αριθμούς με 8 bits, από έως 255 Κρατούμενο Α Αριθμός (8) Β Αριθμός ( 78) Άθροισμα (258) ύπαρξη τελικού κρατουμένου = υπερχείλιση διαθέσιμος χώρος Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 22 Προσθέτοντας δυαδικούς αριθμούς (προσημασμένους) Προσημασμένοι ακέραιοι Συμπλήρωμα ως προς 2 Το περισσότερο σημαντικό bit υποδηλώνει το πρόσημο =θετικός, =αρνητικός αριθμός με Ν bits πεδίο τιμών [ -2 Ν-... +2 Ν- - ] π.χ. για αριθμούς με 8 bits, από -28 έως +27 Πρόσθεση Όπως σε μη προσημασμένους Τελικό κρατούμενο αγνοείται Πώς γίνεται τώρα ο έλεγχος υπερχείλισης; Αφαίρεση = πρόσθεση του συμπληρώματος ως προς 2 του αφαιρετέου Α Β = Α + (-Β) χωρίς πρόσθετα κυκλώματα για την αφαίρεση! Προσθέτοντας δυαδικούς αριθμούς (προσημασμένους) Κρατούμενο Α Αριθμός (+7) Β Αριθμός (+22) Άθροισμα (+39) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 23 Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 24
Προσθέτοντας δυαδικούς αριθμούς (προσημασμένους) Κρατούμενο Α Αριθμός (+24) Β Αριθμός (-7) Άθροισμα ( +7) Υπερχείλιση σε προσημασμένους αριθμούς (-64) (-) αρνητικοί () προσημασμένοι με 8 bits θετικοί (+63) το κρατούμενο αγνοείται Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 25 (-28) (+27) Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 26 Υπερχείλιση σε προσημασμένους αριθμούς Κρατούμενο Α Αριθμός (+27) Β Αριθμός ( +3) Άθροισμα (-26;) Υπερχείλιση σε προσημασμένους αριθμούς Κρατούμενο Α Αριθμός (-26) Β Αριθμός ( -5) Άθροισμα (+24;) Το άθροισμα αριθμών με ίδιο πρόσημο θα πρέπει να έχει επίσης το ίδιο πρόσημο! στην αντίθετη περίπτωση: υπερχείλιση Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 27 Το άθροισμα αριθμών με ίδιο πρόσημο θα πρέπει να έχει επίσης το ίδιο πρόσημο! στην αντίθετη περίπτωση: υπερχείλιση πώς θα ήταν ένα κύκλωμα με πύλες για ανίχνευση υπερχείλισης; Εισαγωγή στην Επιστήμη των Υπολογιστών Πράξεις με δυαδικούς αριθμούς 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