Ελίνα Μακρή elmak@unipi.gr
Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D, T, SR, JK)
Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D, T, SR, JK)
Κάθε αριθμός Ν μπορεί να γραφεί στην παρακάτω μορφή: m = ακέραια ψηφία n = κλασματικά ψηφία β = βάση, β 2 α i = ψηφία του αριθμού, 0 α i β-1
Δυαδικό Σύστημα (βάση=2) Οκταδικό Σύστημα (βάση=8) Δεκαδικό Σύστημα (βάση=10) Δεκαεξαδικό Σύστημα (βάση=16) Δυαδικά Ψηφία Οκταδικά Ψηφία Δεκαδικά Ψηφία Δεκαεξαδικά Ψηφία 0 0 0 0 Α 1 1 1 1 Β 2 2 2 C 3 3 3 D 4 4 4 E 5 5 5 F 6 6 6 7 7 7 8 8 9 9 *To δεκαεξαδικό σύστημα χρειάζεται 16 ψηφία, αλλά το αριθμητικό μας σύστημα αποτελείται μόνο από 10 ψηφία (0-9). Για τα υπόλοιπα 6 ψηφία που απομένουν χρησιμοποιούμε τους χαρακτήρες A-F, δηλαδή A=10, B=11, C=12, D=13, E=14 και F=15.
Παράδειγμα Αναπαράσταση των αριθμών στα αριθμητικά συστήματα: Δυαδικό Σύστημα Οκταδικό Σύστημα Δεκαδικό Σύστημα Δεκαεξαδικό Σύστημα [110] 2 = 1*2 2 + 1*2 1 + 0*2 0 [120] 8 = 1*8 2 + 2*8 1 + 0*8 0 [135] 10 = 1*10 2 + 3*10 1 + 5*10 0 [15,01] 10 = 1*10 1 + 5*10 0 + 0*10-1 + 1*10-2 [520] 16 = 5*16 2 + 2*16 1 + 0*16 0
Άσκηση 1 Να παρασταθούν οι παρακάτω αριθμοί: Οκταδικός αριθμός: [321] 8 Δεκαδικοί αριθμοί: [231] 10, [72,33] 10 Δεκαεξαδικός αριθμός: [6F3] 16
Άσκηση 1 - Λύσεις Οκταδικός αριθμός: [321] 8 [321] 8 = 3*8 2 + 2*8 1 + 1*8 0 Δεκαδικός αριθμός: [231] 10 [231] 10 = 2*10 2 + 3*10 1 + 1*10 0 [72,33] 10 = 7*10 1 + 2*10 0 + 3*10-1 + 3*10-2 Δεκαεξαδικός αριθμός: [6F3] 16 [6F3] 16 = 6*16 2 + 15*16 1 + 3*16 0
β 10 Η μετατροπή ενός αριθμού από ένα οποιοδήποτε σύστημα (βάση=β) στο δεκαδικό σύστημα υπολογίζεται από την παρακάτω παράσταση:
β 10 Παραδείγματα Μετατροπή του δυαδικού αριθμού [10011] 2 σε δεκαδικό αριθμό: [10011] 2 = 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16+2+1 = [19] 10 Μετατροπή του οκταδικού αριθμού [7123,35] 8 σε δεκαδικό αριθμό: [7123,35] 8 = 7*8 3 + 1*8 2 + 2*8 1 + 3*8 0 + 3*8-1 + 5*8-2 = 3584 + 64 +16 + 3 + 0,375 + 0,0781 = [3667,4531] 10 Μετατροπή του δεκαεξαδικού αριθμού [FC27] 16 σε δεκαδικό αριθμό: [FC27] 16 = 15*16 3 + 12*16 2 + 2*16 1 + 7*16 0 = 61440 + 3072 + 32 + 7 = [64551] 10 όπου F=15 και C=12
β 10 Άσκηση 2 Να μετατρέψετε τους παρακάτω αριθμούς σε δεκαδικούς: Δυαδικοί Αριθμοί [101] 2 [1110] 2 Οκταδικός Αριθμός [351] 8 Δεκαεξαδικοί Αριθμοί [ΑΒC2] 16 [17G] 16
β 10 Άσκηση 2 - Λύσεις Μετατροπές σε δεκαδικούς αριθμούς Δυαδικοί αριθμοί: [101] 2 = 1*2 2 + 0*2 1 + 1*2 0 = 4 + 0 + 1 = [5] 10 [1110] 2 = 1*2 3 + 1*2 2 + 1*2 0 = 8 + 4 + 2 + 0 = [14] 10 Οκταδικός αριθμός: [351] 8 =3*8 2 + 5*8 1 +1*8 0 = 192 + 40 + 1 = [233] 10 Δεκαεξαδικοί αριθμοί: [ΑΒC2] 16 = 10*16 3 + 11*16 2 + 12*16 1 + 2*16 0 = 40960 + 2816 + 192 + 2 = [43970] 10 [17G] 16 =????? Ο αριθμός αυτός δεν είναι παραδεκτός, καθώς περιέχει και άλλα σύμβολα εκτός από τα 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
10 β Η μετατροπή ενός αριθμού από το δεκαδικό σύστημα σε ένα οποιοδήποτε σύστημα (βάση=β) είναι πιο πολύπλοκη διαδικασία, καθώς υπολογίζεται διαφορετικά για το ακέραιο και διαφορετικά για το κλασματικό μέρος, βάση αλγορίθμου. Ακέραιο Μέρος - Παράδειγμα 1 Μετατροπή του αριθμού [13] 10 στο δυαδικό σύστημα (β=2) Αριθμός Διαίρεση Πηλίκο Υπόλοιπο Χ 13 Διαιρούμε με το 2 (13/2) 6 1 1 6 Διαιρούμε με το 2 (6/2) 3 0 01 3 Διαιρούμε με το 2 (3/2) 1 1 101 1 Διαιρούμε με το 2 (1/2) 0 1 1101 0 [13] 10 = [1101] 2
10 β Ακέραιο Μέρος - Παράδειγμα 2 Μετατροπή του αριθμού [39] 10 στο οκταδικό σύστημα (β=8) Αριθμός Διαίρεση Πηλίκο Υπόλοιπο Χ 39 Διαιρούμε με το 8 (39/8) 4 7 7 4 Διαιρούμε με το 8 (4/8) 0 4 47 0 [39] 10 = [47] 8 Ακέραιο Μέρος - Παράδειγμα 3 Μετατροπή του αριθμού [40] 10 στο δεκαεξαδικό σύστημα (β=16) Αριθμός Διαίρεση Πηλίκο Υπόλοιπο Χ 40 Διαιρούμε με το 16 (40/16) 2 8 8 2 Διαιρούμε με το 16 (2/16) 0 2 28 0 [40] 10 = [28] 16 Κάθε φορά διαιρούμε με την βάση β του αριθμού στην οποία θέλουμε να γίνει η μετατροπή.
10 β Κλασματικό Μέρος - Παράδειγμα 1 Μετατροπή του αριθμού [0,25] 10 στο δυαδικό σύστημα (β=2) Αριθμός Πολλαπλασιασμός Ακέραιο Μέρος Κλασματικό Μέρος - Παράδειγμα 2 Μετατροπή του αριθμού [0,75] 10 στο δεκαεξαδικό σύστημα (β=16) Αριθμός Πολλαπλασιασμός Ακέραιο Μέρος όπου από το δεκαεξαδικό σύστημα ισχύει C=12. Κλασματικό Μέρος 0,75 Πολ/με με το 16 (0,75*16=12) 12 0 0,C 0 [0,75] 10 = [0,C] 16 Κλασματικό Μέρος 0,25 Πολ/με με το 2 (0,25*2=0,5) 0 0, 5 0,0 0,5 Πολ/με με το 2 (0,5*2=1) 1 0 0,01 0 [0,25] 10 = [0,01] 2 Υ Υ
10 β Κλασματικό Μέρος - Παράδειγμα 3 Μετατροπή του αριθμού [0,8] 10 στο οκταδικό σύστημα (β=8). Καθορίζουμε από πριν ότι θα υπολογίσουμε το πολύ 2 οκταδικά ψηφία. Αριθμός Πολλαπλασιασμός Ακέραιο Μέρος Κλασματικό Μέρος 0, 8 Πολ/με με το 8 (0,8*8=6,4) 6 0,4 0,6 0,4 Πολ/με με το 8 (0,4*8=3,2) 3 0,2 0,63 0,2 [0,8] 10 = [0,63] 8 Υ Κάθε φορά πολλαπλασιάζουμε με την βάση β του αριθμού στην οποία θέλουμε να γίνει η μετατροπή.
10 β Ακέραιο Μέρος vs Κλασματικό Μέρος Ακέραιο Μέρος Διαιρούμε με τη βάση του αριθμού στην οποία θέλουμε να γίνει η μετατροπή. Γράφουμε το υπόλοιπο Y αριστερά του νέου αριθμού. Ο αριθμός Χ είναι ακέραιος αριθμός της μορφής ΥΥΥ, όπου Υ=υπόλοιπο. Κλασματικό Μέρος Πολλαπλασιάζουμε με τη βάση του αριθμού στην οποία θέλουμε να γίνει η μετατροπή. Γράφουμε το ακέραιο μέρος M δεξιά του νέου αριθμού. Ο αριθμός Υ είναι δεκαδικός αριθμός της μορφής 0,ΜΜΜ, όπου Μ=ακέραιο μέρος.
10 β Άσκηση 3 Να γίνουν οι παρακάτω μετατροπές αριθμών: Ακέραιο Μέρος 1. [53] 10 Να μετατραπεί στο δυαδικό σύστημα. 2. [312] 10 Να μετατραπεί στο οκταδικό σύστημα. 3. [640] 10 Να μετατραπεί στο δεκαεξαδικό σύστημα. Κλασματικό Μέρος 1. [0,5] 10 Να μετατραπεί στο δυαδικό σύστημα. 2. [0,4] 10 Να μετατραπεί στο οκταδικό σύστημα, μέχρι 5 οκταδικά ψηφία. 3. [0, 171875] 10 Να μετατραπεί στο δεκαεξαδικό σύστημα.
10 β Άσκηση 3 Λύσεις Ακέραιο Μέρος Άσκηση 3.1 Μετατροπή του αριθμού [53] 10 στο δυαδικό σύστημα (β=2) Αριθμός Διαίρεση Πηλίκο Υπόλοιπο Χ 53 Διαιρούμε με το 2 (53/2) 26 1 1 26 Διαιρούμε με το 2 (26/2) 13 0 01 13 Διαιρούμε με το 2 (13/2) 6 1 101 6 Διαιρούμε με το 2 (6/2) 3 0 0101 3 Διαιρούμε με το 2 (3/2) 1 1 10101 1 Διαιρούμε με το 2 (1/2) 0 1 110101 0 [53] 10 = [110101] 2
10 β Ακέραιο Μέρος - Άσκηση 3.2 Μετατροπή του αριθμού [312] 10 στο οκταδικό σύστημα (β=8) Αριθμός Διαίρεση Πηλίκο Υπόλοιπο Χ 312 Διαιρούμε με το 8 (312/8) 39 0 0 39 Διαιρούμε με το 8 (39/8) 4 7 70 4 Διαιρούμε με το 8 (4/8) 0 4 470 0 [312] 10 = [470] 8 Ακέραιο Μέρος - Άσκηση 3.3 Μετατροπή του αριθμού [640] 10 στο δεκαεξαδικό σύστημα (β=16) Αριθμός Διαίρεση Πηλίκο Υπόλοιπο Χ 640 Διαιρούμε με το 16 (640/16) 40 0 0 40 Διαιρούμε με το 16 (40/16) 2 8 80 2 Διαιρούμε με το 16 (2/16) 0 2 280 0 [640] 10 = [280] 16
10 β Κλασματικό Μέρος - Άσκηση 3.1 Μετατροπή του αριθμού [0,5] 10 στο δυαδικό σύστημα (β=2) Αριθμός Πολλαπλασιασμός Ακέραιο Μέρος Κλασματικό Μέρος - Άσκηση 3.2 Μετατροπή του αριθμού [0,4] 10 στο οκταδικό σύστημα (β=8), ως 5 οκταδικά ψηφία Αριθμός Πολλαπλασιασμός Ακέραιο Μέρος Κλασματικό Μέρος 0,4 Πολ/με με το 8 (0,4*8=3,2) 3 0,2 0,3 0,2 Πολ/με με το 8 (0,2*8=1,6) 1 0,6 0,31 0,6 Πολ/με με το 8 (0,6*8=4,8) 4 0,8 0,314 0,8 Πολ/με με το 8 (0,8*8=6,4) 6 0,4 0,3146 0,4 Πολ/με με το 8 (0,4*8=3,2) 3 0,2 0,31463 0,2 [0,4] 10 = [0,31463] 8 Κλασματικό Μέρος 0,5 Πολ/με με το 2 (0,5*2=1) 1 0 0,1 0 [0,25] 10 = [0,1] 2 Υ Υ
10 β Κλασματικό Μέρος - Άσκηση 3.2 Μετατροπή του αριθμού [0,171875] 10 στο δεκαεξαδικό σύστημα (β=16). Αριθμός Πολλαπλασιασμός Ακέραιο Μέρος Κλασματικό Μέρος 0,171875 Πολ/με με το 16 (0,171875*16=2,75) 2 0,75 0,2 0,75 Πολ/με με το 16 (0,75*16=12) 12 0 0,2C 0 [0,171875] 10 = [0,2C] 16 Υ όπου από το δεκαεξαδικό σύστημα ισχύει C=12.
β1 β2 Η μετατροπή ενός αριθμού από ένα οποιοδήποτε σύστημα (βάση=β1) σε ένα άλλο σύστημα (βάση=β2) μπορεί να γίνει μέσω της μετατροπής στο δεκαδικό σύστημα. [Χ] β1 [Υ] 10 [Ζ] β2 Παρ όλα αυτά υπάρχουν πιο γρήγορες και εύκολες τεχνικές, ώστε οι μετατροπές μεταξύ των αριθμητικών συστημάτων να γίνονται απευθείας.
β1 β2 Δεκαδικοί Αριθμοί Δυαδικοί Αριθμοί Δεκαεξαδικοί Αριθμοί Οκταδικοί Αριθμοί 0 0000 0 0 1 0001 1 1 2 0010 2 2 Αντιστοιχία δεκαδικών αριθμών σε δυαδικούς, δεκαεξαδικούς και οκταδικούς αριθμούς. 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F
β1 β2 Παράδειγμα 1 Μετατροπή δυαδικού αριθμού στο δεκαεξαδικό σύστημα Πρώτος Τρόπος [00111000] 2 = 0*2 7 + 0*2 6 + 1*2 5 + 1*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 0*2 0 = 32 + 16 + 8 = [56] 10 Μετατροπή του αριθμού [56] 10 στο δεκαεξαδικό σύστημα (β=16) Αριθμός Διαίρεση Πηλίκο Υπόλοιπο Χ 56 Διαιρούμε με το 16 (56/16) 3 8 8 3 Διαιρούμε με το 16 (3/16) 0 3 38 0 [56] 10 = [38] 16
β1 β2 Δεύτερος Τρόπος Χωρίζουμε τα ψηφία του δυαδικού αριθμού σε τετράδες. [00111000] 2 Δυαδικός Αριθμός 0011 1000 Χωρισμός σε τετράδες 3 8 [38] 16 Υπολογισμός ψηφίων Δεκαεξαδικός Αριθμός
β1 β2 Παράδειγμα 2 Αντίστροφη διαδικασία με χρήση υποδιαστολής Μετατροπή του αριθμού [45,F] 16 στο δυαδικό σύστημα (β=16). [45,F] 16 4 5, F = 15 0100 0101, 1111 [01000101,1111] 2
β1 β2 Άσκηση 4 Να μετατραπεί ο αριθμός [10000101,1101] 2 στο δεκαεξαδικό σύστημα (β=16), με τον δεύτερο τρόπο.
β1 β2 Άσκηση 4 - Λύση Μετατροπή του αριθμού [10000101,1101] 2 στο δεκαεξαδικό σύστημα (β=16). [10000101,1101] 2 1000 0101, 1101 8 5, 13 = D [85,D] 16
β1 β2 Άσκηση 5 Να μετατραπεί ο αριθμός [1011011001,110111] 2 στο δεκαεξαδικό σύστημα (β=16), με τον δεύτερο τρόπο.
β1 β2 Άσκηση 5 Λύση Προσθέτουμε μηδενικά όταν δεν υπάρχουν!! [1011011001,110111] 2 Προσθέτουμε μηδενικά όταν δεν υπάρχουν!! 0010 1101 1001, 1101 1100 2 D = 13 9, D = 13 C = 12 [2D9,DC] 16
β1 β2 Παράδειγμα 3 Μετατροπή δυαδικού αριθμού στο οκταδικό σύστημα: χωρίζουμε τα ψηφία του δυαδικού αριθμού σε τριάδες. [100110,010] 2 Δυαδικός Αριθμός 100 110, 010 Χωρισμός σε τριάδες 4 6, 2 Υπολογισμός ψηφίων [46,2] 8 Οκταδικός Αριθμός
β1 β2 Άσκηση 6 Να μετατραπεί ο αριθμός [1011011001,110111] 2 στο οκταδικό σύστημα (β=8), με τον δεύτερο τρόπο.
β1 β2 Άσκηση 6 Λύση Προσθέτουμε μηδενικά όταν δεν υπάρχουν!! [1011011001,110111] 2 001 011 011 001, 110 111 1 3 3 1, 6 7 [1331,67] 8
β1 β2 Άσκηση 7 1. Να μετατραπεί ο αριθμός [23,5] 8 απο το οκταδικό σύστημα στο δυαδικό, στο δεκαδικό και στο δεκαεξαδικό. 2. Να μετατραπεί ο αριθμός [2,C5] 16 απο το δεκαεξαδικό σύστημα στο δυαδικό, στο δεκαδικό και στο οκταδικό.
β1 β2 Άσκηση 7.1 Λύση Υπάρχουν πολλοί τρόποι να γίνουν οι μετατροπές στα υπόλοιπα αριθμητικά συστήματα. Μετατροπή του αριθμού [23,5] 8 στο δεκαδικό σύστημα: [23,5] 8 = 2*8 1 + 3*8 0 + 5*8-1 = 16 + 3 + 0,625 = [19,625] 10 [19,625] 10
β1 β2 Μετατροπή του αριθμού [23,5] 8 στο δυαδικό σύστημα: [23,5] 8 2 3, 5 010 011, 101 [010011,101] 2
β1 β2 Μετατροπή του αριθμού [23,5] 8 στο δεκαεξαδικό σύστημα μέσω του δυαδικού συστήματος: [010011,101] 2 0001 0011, 1010 1 3, 10 = Α [13,Α] 16
β1 β2 Άσκηση 7.2 Λύση Ομοίως με το προηγούμενο ερώτημα, υπάρχουν πολλοί τρόποι να γίνουν οι μετατροπές στα υπόλοιπα αριθμητικά συστήματα. Μετατροπή του αριθμού [2,C5] 16 στο δεκαδικό σύστημα: [2,C5] 16 = 2*16 0 + 12*16-1 + 5*16-2 = 2 + 0,75 + 0,01953125 = [2,76953125] 10 [2,76953125] 10
β1 β2 Μετατροπή του αριθμού [2,C5] 16 στο δυαδικό σύστημα: [2,C5] 16 2 C=12, 5 0010 1100, 0101 [0010,11000101] 2
β1 β2 Μετατροπή του αριθμού [2,C5] 16 στο οκταδικό σύστημα μέσω του δυαδικού συστήματος: [0010,11000101] 2 000 010 110, 001 010 0 2 6, 1 2 [02,612] 8