Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές http://courseware.mech.ntua.gr/ml23021/ 3 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E-mail: leo@mail.ntua.gr URL: http://users.ntua.gr/leo 1
Κωδικοποίηση & Αποκωδικοποίηση Αριθμών & Χαρακτήρων Αποκωδικοποίηση Κωδικοποίηση Συστήματα Αρίθμησης το Δυαδικό Μετατροπή από το ένα σύστημα στο άλλο Η πρόσθεση & η αφαίρεση στο Δυαδικό H αφαίρεση στο Δυαδικό Παράσταση Αρνητικών Peter Bishop: Κεφάλαιa 3,5 2
Γιατί οι σύγχρονοι Η/Υ χρησιμοποιούν το δυαδικό σύστημα? δ ( ) A ( ) = δ α 2 10 α 10 β 10 f γ γ 10 (, ) γ = f α β 10 10 10 ( ) 1 10 = δ Γ2 1 δ ( ) Γ = g Γ 2 g ( A, B ) 2 2 2 A 2 B 2 δ ( ) B ( ) = δ β 2 10 Ερώτημα: Γιατί πρέπει να μεταβούμε στο δυαδικό σύστημα και μετά να επιστρέψουμε πίσω? Απάντηση: Η ηλεκτρονική υλοποίηση των λογικών πράξεων είναι πολύ πιο εύκολη και αξιόπιστη απ ότι αυτή των αριθμητικών πράξεων 3
Το Δυαδικό σύστημα επιτρέπει την ηλεκτρονική υλοποίηση Boole : αν δύο αριθμοί κωδικοποιηθούν (μετατραπούν) στο δυαδικό σύστημα τότε η εκτέλεση μαθηματικών πράξεων (+, *, -, ) ή η εξέταση (πιστοποίηση) λογικών σχέσεων (>,, <,, =,...) μεταξύ τους, μπορούν να υλοποιηθούν με χρήση των βασικών λογικών τελεστών (ΑΝD, OR, NOT), και μόνο. 4
Συστήματα Αρίθμησης Παρατηρήστε ότι ( ) 10 78532.26 = 78532.26 = =7*10 + 8*10 + 5*10 + 3*10 + 2*10 + 2*10 + 6*10 4 3 2 1 0 1 2 Αυτό γενικεύεται ως. ( n 1 n 2... 1 0 1 D D D D D 2 D... m D) = D * B +... + D* B + D* B +... + D * B n 1 n 1 0 0 1 1 m m όπου D : Digits = ψηφία, B : Base = βάση ΜSD (Most Significant Digit) LSD(Least Significant Digit) ΤΑΞΗ ΨΗΦΙΟΥ B = 5
Συστήματα Αρίθμησης Δεκαδικό Οκταδικό Δυαδικό 9 0 1 2 3 3 4 5 6 7 2 3 4 5 6 7 8 9 0 1 0 1 2 1 2 3 2 3 4 7 8 0 1 0 1 0 D : Digits = ψηφία B : Base = βάση :10 1,2,3,4,5,6,7,8,9,0 D : Digits = ψηφία: 4 B : Base = βάση :8 1,2,3,4,5,6,7,0 D : Digits = ψηφία: 4 B : Base = βάση :2 0,1 6
Κωδικοποίηση - Αποκωδικοποίηση Δεδομένα Εισόδου Κωδικοποίηση Δεδομένα Εισόδου σε Δυαδική Μορφή Επεξεργασία Δεδομένα Εξόδου σε Δυαδική Μορφή Αποκωδικοποίηση Δεδομένα Εξόδου Κωδικοποίηση: Μετάβαση σε ηλεκτρονικά επεξεργάσιμη πληροφορία Αποκωδικοποίηση: Μετάβαση σε φυσικά επεξεργάσιμη διαδικασία 7
Συστήματα Αρίθμησης: Αποκωδικοποίηση Δεκαδικό σύστημα (Β=10, D Δυαδικό σύστημα (Β=2, D {0,...,9} ) : οπότε 3496 = 3*10 + 4 *10 + 9 *10 + 6 *10 10 10102 = 3 2 1 0 {0, 1} ) : οπότε 3 2 1 0 = 1*2 + 0*2 + 1*2 + 0*2 = Αποκωδικοποίηση 8 0 2 0 = + + + = =10 10 Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 8
Συστήματα Αρίθμησης: Κωδικοποίηση Μετατροπή του δεκαδικού 10 10 2 0 5 2 1 2 2 Κωδικοποίηση 0 1 στον δυαδικό (1010) 2 Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 9
bit byte - word Κάθε ψηφίο {0,1} ενός δυαδικού αριθμού (π.χ 11011 2 ) είναι ένα δυαδικό ψηφίο (BΙnary digit} δηλ. bit Μία ομάδα 8 bit αποτελεί ένα byte Τα bit που μπορεί να επεξεργασθεί ένας Η/Υ σε ένα κύκλο λειτουργίας του λέγεται ψηφιολέξη (word). Ο αντίστοιχος αριθμός είναι το μήκος ψηφιολέξης (wordlength) 7 6 5 4 3 2 1 0 n-1 n-2 n-3 n-4 3 2 1 0 Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 10
Πράξεις στο Δυαδικό Σύστημα Πρόσθεση Αφαίρεση Πολλαπλασιασμό 11
Πρόσθεση Δυαδικών Ακεραίων 0+0=0 0+1=1 1+0=1 1+1=10 Παραδείγματα 1 111 11 κρατούμενα 101 1001 1011 1011 10 + 101 + 101 + 11 + 111 1110 10000 1110 Έστω Η/Υ με ψηφιολέξη=1byte 1100 0100 1001 1000 + overflow digit 10101 1100 Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 12
Αφαίρεση Δυαδικών Ακεραίων 0-0=0 1-0=1 1-1=0 10-01=01 με δανεισμό από ανώτερη τάξη 0 0 1 1 0 1 Παράδειγμα 1 1 0-1 1 1 η αφαίρεση απαιτεί «λογική»! Βασική Ιδέα: 13-6=13+(-6) δηλ. η αφαίρεση μπορεί γίνει μέσω πρόσθεσης Άρα: ζητούμε μοντέλο παράστασης αριθμών που να: κάνει δυνατή τη παράσταση αρνητικών αριθμών, και είναι τέτοιο ώστε η αφαίρεση να γίνεται άμεσα χωρίς επιπρόσθετη λογική Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 13
Παράσταση Αρνητικών: πρόσημο-μέτρο (sign and magnitude code) Σύμβαση: το MSD δηλώνει το πρόσημο (π.χ. 0 : θετικό, 1 : αρνητικό). Παραδ.: +13 10 = 01101 2, -13 10 = 11101 2. Παρατηρήστε: 5 10 = 00101 2 τότε 5-13=5+(-13) (-13) 1 1 1 0 1 (+5) 0 0 1 0 1 + -8 10 1 0 0 0 1 0 2 Λάθος! Αυτή παράσταση, δεν καλύπτει την απαίτηση: «η αφαίρεση να μπορεί γίνει μέσω πρόσθεσης» Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 14
Παράσταση Αρνητικών: Συμπλήρωμα ως προς 2 (2-complement code) Σύμβαση: Για μήκος λέξης n-bit, το MSD εκφράζει το 2 n-1. Έτσι εκφράζονται οι αριθμοί από (2 n-1-1) έως 2 n-1 π.χ. Αν n=6 τότε εκφράζονται οι αριθμοί από 32 έως 31. -32 16 8 4 2 1 Ποια «τάξη» παριστάνει κάθε στήλη 0 1 1 1 1 1 = 16+8+4+2+1=31 0 0 0 0 0 1 = 1 0 0 0 0 0 0 = 0 1 1 1 1 1 1 = -32+16+8+4+2+1=-1 1 0 0 0 0 0 = -32 Για ένα ακέραιο α, για να βρούμε το συμπλήρωμα του ως προς 2, c 2 (α) : Κάνουμε αντιστροφή των bits της δυαδικής παράστασης του α, και προσθέτουμε σε αυτό 1 π.χ. α =43-64 32 16 8 4 2 1 0 1 0 1 0 1 1 = 43 1 0 1 0 1 0 0 + 1 1 0 1 0 1 0 1 = c 2 (43) = -43 Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 15
Η Αφαίρεση με την Παράσταση Συμπληρώματος ως προς 2 Παραδείγματα: Αφαίρεση σε 6-μπιτο Η/Υ 5-18 = 5+ (-18) 29 + (-7) -32 16 8 4 2 1-32 16 8 4 2 1 0 1 0 0 1 0 = 18 0 0 0 1 1 1 =7 1 0 1 1 0 1 1 1 1 0 0 0 + 1 + 1 1 0 1 1 1 0 = c 2 (18) 1 1 1 0 0 1 = c 2 (7) + 0 0 0 1 0 1 = 5 + 0 1 1 1 0 1 = 29-32+16+2+1 = 1 1 0 0 1 1 =-13 0 1 0 1 1 0 =22 0 0 (κρατούμενα κατά 1 1 την πρόσθεση) Οι παραπάνω πράξεις είναι σωστές γιατί το κρατούμενο που προστίθεται στο MSD είναι το ίδιο με το κρατούμενο που εξέρχεται από το MSD. Το αντίθετο, σημαίνει ότι, για το συγκεκριμένο Η/Υ με εύρος λέξης n bit, υπερβαίνουμε το εύρος αριθμών που μπορούμε να χειρισθούμε και έχουμε είτε Overflow (υπερχείλιση), είτε Underflow («υποχείλιση»). Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 16
Η Αφαίρεση με την Παράσταση Συμπληρώματος ως προς 2: Υπερχείλιση & Υποχείλιση Overflow: αποτέλεσμα >(2 n-1-1) Underflow: αποτέλεσμα < 2 n-1 π.χ. n=6, 22 + 22 = 44 π.χ. n=6, -8-31=(-8)+(-31)=-39-32 16 8 4 2 1-32 16 8 4 2 1 0 1 0 1 1 0 = 22 1 1 1 0 0 0 = -8 + 0 1 0 1 1 0 = 22 + 1 0 0 0 0 1 = -31 1 0 1 1 0 0 =-20 44 0 1 1 0 0 1 =25-39 0 1 1 0 Διαπίστωση : με τη παράσταση συμπληρώματος ως προς 2 γίνεται δυνατή η παράσταση αρνητικών αριθμών, η αφαίρεση γίνεται άμεσα, επιπρόσθετη λογική, και μέσω πρόσθεσης, και χωρίς παρέχει άμεσο μηχανισμό πιστοποίησης των αποτελεσμάτων μέσω των κρατουμένων «εισόδου εις» και «εξόδου από» το MSD. Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 17
Παράδειγμα: Θέμα Σεπτεμβρίου 2008 Να εκτελεστεί η πρόσθεση (αφού πρώτα μετατραπούν σε δυαδικούς) μεταξύ των αριθμών -47 10 και -63 10 σε δύο υπολογιστές Α & Β που χρησιμοποιούν την παράσταση συμπληρώματος ως προς 2. Ο Α έχει μήκος λέξης 7 bit ενώ ο Β 8 bit. Τι παρατηρείτε? Μετατροπή σε δυαδικό 47 2 63 2 1 23 2 1 31 2 1 11 2 1 15 2 1 5 2 1 7 2 1 2 2 1 3 2 0 1 1 1 101111 111111 Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 18
Παράδειγμα: συνεχ. 47 10 =101111 2 63 10 =111111 2 Πως παρίστανται τα -47 10,-63 10? Με συμπλήρωμα ως προς 2 αλλά με πόσα bit? Υπολογιστής Α: 7 bit 6 5 4 3 2 1 0 : bit -64 32 16 8 4 2 1-64 32 16 8 4 2 1 0 1 0 1 1 1 1 =47 10 0 1 1 1 1 1 1 =63 10 1 0 1 0 0 0 0 =c 1 (47) 1 0 0 0 0 0 0 =c 1 (63) + 1 + 1 1 0 1 0 0 0 1 =c 2 (47) 1 0 0 0 0 0 1 =c 2 (63) Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 19
Παράδειγμα: συνεχ. -64 32 16 8 4 2 1 1 0 1 0 0 0 1 =c 2 (47) + 1 0 0 0 0 0 1 =c 2 (63) 1 0 0 1 0 0 1 0 Σωστό ή Λάθος??? 1 0 ΛΑΘΟΣ: γιατί το εισερχόμενο κρατούμενο στο MSD Υπολογιστής Β: 8 bit είναι διαφορετικό από το εξερχόμενο -128 64 32 16 8 4 2 1-128 64 32 16 8 4 2 1 0 0 1 0 1 1 1 1 =47 10 0 0 1 1 1 1 1 1=63 10 1 1 0 1 0 0 0 0 =c 1 (47) 1 1 0 0 0 0 0 0=c 1 (63) + 1 + 1 1 1 0 1 0 0 0 1 =c 2 (47) 1 1 0 0 0 0 0 1 =c 2 (63) Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 20
-128 64 32 16 8 4 2 1 1 1 0 1 0 0 0 1 =c 2 (47) + 1 1 0 0 0 0 0 1 =c 2 (63) Παράδειγμα: συνεχ. 1 1 0 0 1 0 0 1 0 Σωστό ή Λάθος 1 1 ΣΩΣΤΟ: γιατί το εισερχόμενο κρατούμενο στο MSD Επομένως: είναι ίδιο με το εξερχόμενο Επειδή -67+(-43)=-110 είναι λογικό να είναι λανθασμένη η πράξη στον 7-μπιτο Η/Υ ο οποίος μπορεί να παραστήσει κατ ελάχιστον τον αριθμό -64 σωστή η πράξη στον 8-μπιτο Η/Υ ο οποίος μπορεί να παραστήσει κατ ελάχιστον τον αριθμό -128 Οι Η/Υ μέσω ελέγχου του κρατουμένου στο MSD έχουν τη δυνατότητα ελέγχου της ορθότητας των αποτελεσμάτων τους. Κ.Κυριακόπουλος Εισαγωγή στους Η/Υ 21