στους Ηλεκτρονικούς Υπολογιστές http://courseware.mech.ntua.gr/ml23021/ 4 ο Μάθημα Λεωνίδας λεξόπουλος Λέκτορας ΕΜΠ E-mail: leo@mail.ntua.gr URL: http://users.ntua.gr/leo 1
Στα προηγούμενο μάθημα Συστήματα ρίθμησης το Δυαδικό Μετατροπή από το ένα σύστημα στο άλλο ποκωδικοποίηση Κωδικοποίηση Η πρόσθεση στο Δυαδικό H αφαίρεση στο Δυαδικό Παράσταση ρνητικών 1 os Τρόπος: Με πρόσημο 2 ος Τρόπος: Με Παράσταση Συμπληρώματος ως προς 2 3 ος Τρόπος: Με Πόλωση (Σήμερα) 2
6bit Έλεγχος αποτελέσματος πρόσθεσης / αφαίρεσης μέσω κρατουμένων με την Παράσταση Συμπληρώματος ως προς 2 Ίδια κρατούμενα Ίδια κρατούμενα π.χ. 16 + 2 = 18 π.χ. -8+9= 1-32 16 8 4 2 1-32 16 8 4 2 1 0 1 = 16 1 1 1 0 0 0 = -8 + 1 0 = 22 + 0 0 1 0 0 1 = -31 1 0 =-20 44 0 0 1 0 0 1 =25-39 0 0 1 1 Overflow Underflow π.χ. 22 + 22 = 44 π.χ. -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 1 = -31 1 0 1 1 0 0 =-20 44 0 1 1 0 0 1 =25-39 0 1 1 0 3
Κωδικοποίηση & ποκωδικοποίηση ριθμών & Χαρακτήρων Ο πολλαπλασιασμός στο Δυαδικό Παράσταση Κλασματικών στο Δυαδικό Κωδικοποίηση Χαρακτήρων 4
Πολλαπλασιασμός Δυαδικών κεραίων 0 0 = 0 0 1 = 0 1 0 = 0 1 1 = 1 Παραδείγματα 1 0 0 1 1 0 0 1. 1 0 1. 1 0 1 ο πολλαπλασιασμός δυαδικών αριθμών πραγματοποιείται με πρόσθεση και ολίσθηση προς τα αριστερά. 5
λγόριθμος πολλαπλασιασμού Έστω ότι θέλουμε να πολλαπλασιάσουμε 2 αριθμούς, D μήκους λέξης n-bit. Κατασκευάζουμε τα χωρία A,B,C,D με το Β να έχει μήκος 1-bit ενώ τα A,C,D n-bit π.χ για n=4 Βήμα 1ο : Τοποθέτησε τους A, D στα αντίστοιχα κελιά και τοποθέτησε μηδενικά στα B, C. Βήμα 2ο : Κάνε τα παρακάτω n φορές (βρόχος) ν το LSD του D είναι 1, τότε πρόσθεσε τα, C. Βάλε το αποτέλεσμα στο C και το κρατούμενο (αν υπάρχει) στο B. ν δεν υπάρχει κρατούμενο, τότε στο B μπαίνει 0. Μετάθεσε όλα τα ψηφία του ενοποιημένου χώρου BCD όλα μια θέση δεξιά (ολίσθηση) Βήμα 3ο : Μόλις τελειώσουν οι n φορές, το αποτέλεσμα είναι στο CD. Β C D 6
λγόριθμος πολλαπλασιασμού, ( συνέχεια) Παράδειγμα: =1101, D=1001, προφανώς n=4 Βήμα 1: 0 1 0 0 1 (β) Βήμα Μετάθεση 1o: Τοποθέτησε όλων των τους ψηφίων A, D του στα αντίστοιχα BCD κατά κελιά μια και θέση δεξιά βάλε μηδενικά στα B, C. Β C πρόσθεσε τα, C. DΒάλε το Βήμα 2: i=1 n=4. αποτέλεσμα στο C και το i=2 n=4. (α) Το LSD=1 οπότε +C C (α) Το LSD=0 κρατούμενο: οπότε δεν αλλάζει τίποτα 0 1 0 0 1 Βήμα 2ο: Κάνε τα παρακάτω n φορές 0 0 1(βρόχος) 1 0 1 1 0 0 0 0 ενοποιημένου 1 1 0 χώρου 1 1BCD0 μια 0 - ν το LSD του D είναι 1, τότε (αν υπάρχει) στο B. (αν δεν υπάρχει) τότε στο B μπαίνει 0. - Μετάθεσε όλα τα ψηφία του 1 0 0 1. 1 0 1 θέση δεξιά (ολίσθηση) Βήμα 3ο: Μόλις τελειώσουν οι n φορές, το αποτέλεσμα είναι στο CD. 7
λγόριθμος πολλαπλασιασμού, ( συνέχεια) (β) Μετάθεση όλων των ψηφίων του BCD κατά μια θέση δεξιά 0 0 0 1 0 (β) Μετάθεση όλων των ψηφίων του BCD κατά μια θέση δεξιά 1 1 0 0 1. 1 0 1 i=3 n=4. (α) Το LSD=0 οπότε δεν αλλάζει τίποτα 0 0 0 1 0 i=4 n=4. (α) Το LSD=1 οπότε +C C 0 1 0 1 1 8
λγόριθμος πολλαπλασιασμού, ( συνέχεια) (β) Μετάθεση όλων των ψηφίων του BCD Βήμα 4: Το αποτέλεσμα είναι στο CD κατά μια θέση δεξιά 0 0 1 0 1 0 0 1 0 1 1 0 0 1. 1 0 1 1 0 0 1. 1 0 1 9
Κλασματικοί ριθμοί στο Δυαδικό Δυαδικό 1010.1010 1 0 1 0 1 0 1 0 8 δες 4 δες 2 δες 1 δες 1/2 α 4 τα 8 α 16 α 10
Κλασματικοί ριθμοί στο Δυαδικό ποκωδικοποίηση : Δεδομένου ότι n 1 n 2... 1 0 D D D D 1 D 2 D... m D (. ) = D * B +... + D* B + D* B +... + D * B n 1 n 1 0 0 1 1 m m προφανώς 0.00101 2 = 0*2-1 +0*2-2 +1*2-3 +0*2-4 +1*2-5 =0.15625 10 Κωδικοποίηση : ντιστρόφως, αν έχουμε τον αριθμό 0.158 10 τότε 0.158*2 = 0.316 0.316*2 = 0.632 0.632*2 = 1.264 0.264*2 = 0.528 0.528*2 = 1.056 0.158 10 = 0.0 0 1 0 1 2 B = 11
Παραδείγματα ποκωδικοποίηση: 10.011 2 D.DDD 10? Κωδικοποίηση : 2.8 10 DD.DDD 2? Πόσο περισσεύει? 12
Πρόσημο Κλασματικών πρόσημο-μέτρο: το MSD δηλώνει το πρόσημο (π.χ. 0: θετικό, 1 : αρνητικό). Παράδειγμα: 13 = 1 + 1 + 1 32 4 8 32 Sign ½ ¼ 1/8 1/16 1/32 1 0 = -13/32 0 0 0 1 0 1 = 0.158 10 συμπλήρωμα ως προς 2: Παράδειγμα: -1 ½ ¼ 1/8 1/16 1/32 0 0 = 13/32 1 1 0 0 1 0 + 1 1 1 0 0 1 1 =c 2 (13/32)=-13/32 13
Σε Η/Υ που Πρόβλημα Εξάσκησης χρησιμοποιεί τη σύμβαση c 2 ( ), το μήκος λέξης είναι 8 bit, και τα 3 bit είναι για το κλασματικό μέρος, Να παρασταθούν ως δυαδικοί οι αριθμοί 5.5 10 και - 4.25 10 Να γίνει η πράξη 5.5 10-4.25 10 στο δυαδικό Να εξετασθεί (από πλευράς Η/Υ) η ορθότητα της πράξης. 14
Πόλωση - Πλεονασμός κατά Κ Στο δυαδικό σύστημα ένας 8-bit αριθμός περιέχει αριθμούς από το 0 255 Τι θα γινόταν αν μεταθέταμε το 0 σε 128? «Πόλωση 128» Το «000» θα αντιστοιχούσε σε «128» Το «-128» θα αντιστοιχούσε σε «0» (δηλ. Min) Το «+127» θα αντιστοιχούσε σε «255» (δηλ. max) Π.χ Να παρασταθεί o αριθμός 5 σε 8-bit δυαδικό σύστημα με πόλωση 128 Το «5» αντιστοιχεί σε 133 10000101 15