ΑΣΚΗΣΕΙΣ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ (σελ. 30-34 στο ΜΥ1011Χ.pdf) Για να λύνετε εύκολα ασκήσεις στα συστήματα αρίθμησης θα πρέπει να απομνημονεύσετε τα πρώτα 17 βάρη του δυαδικού συστήματος από 2 0 μέχρι 2 16 : 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 και 65536. 1. Οι παρακάτω αριθμοί του δεκαδικού συστήματος να μετατραπούν στο δυαδικό (pure binary system ή απροσήμαστοι αριθμοί) και στο δεκαεξαδικό σύστημα αρίθμησης. α) 53, β) 255, γ) 128, δ) 32768, ε) 65535 α) Γράφουμε τα βάρη του δυαδικού συστήματος μέχρι το 32, επειδή το επόμενο βάρος 64 ξεπερνάει τον αριθμό 53 που μετατρέπεται. Κάτω από το μεγαλύτερο βάρος 32 γράφουμε 1 και αφαιρούμε 53 32 που δίνει 21. Για τα 21 που απομένουν χρειαζόμαστε το βάρος 16, οπότε κάτω από το βάρος 16 γράφουμε 1 και αφαιρούμε 21-16 που δίνει 5. Το επόμενο βάρος 8 είναι μεγαλύτερο από το 5, άρα δεν το χρειαζόμαστε και γράφουμε από κάτω του 0. Συνεχίζουμε με τον ίδιο τρόπο μέχρις ότου το αποτέλεσμα της αφαίρεσης γίνει 0. 32 16 8 4 2 1 1 1 0 1 0 1 53-32 21 21-16 5 5-4 1 1-1 0 Για να μετατραπεί ο αριθμός 53 στο 16δικό μπορούμε να διαιρέσουμε διά 16 ή να μετατρέψουμε τον δυαδικό αριθμό στο 16δικό, που είναι και πιο εύκολο. Πρώτα με τη διαίρεση διά 16. 53 16 5 3 Άρα 53 = 35h. Ο άλλος τρόπος είναι να μετατρέψουμε ανά 4 bits σε ένα 16δικό ψηφίο, από 0000=0h μέχρι 1111=Fh. Άρα 53 = 35h. 128 64 32 16 8 4 2 1 80h 40h 20h 10h 8h 4h 2h 1h 53= 0 0 1 1 0 1 0 1 3 5 β) ε) Για τους υπόλοιπους αριθμούς μπορούμε να εργαστούμε με τον ίδιο τρόπο όπως προηγουμένως, και καλό είναι να το κάνουμε για εξάσκηση. Υπάρχει, όμως, πιο απλός τρόπος, αν θυμηθούμε ότι: o Κάθε βάρος στο δυαδικό σύστημα είναι το άθροισμα όλων των προηγούμενων βαρών συν 1. o Τα βάρη στο δυαδικό είναι 2 ν, όπου ν η θέση του ψηφίου αν μετρηθεί από δεξιά και από το μηδέν. Ασκήσεις στα συστήματα αρίθμησης Νικολαΐδης Νικ. Σελ. - 1 -
128 64 32 16 8 4 2 1 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 (64+32+16+ 8+4+2+1)+1 (32+16+8+ 4+2+1)+1 (16+8+4+ 2+1)+1 (8+4+2+1)+1 (4+2+1)+1 (2+1)+1 (1)+1 Ως συμπέρασμα των παραπάνω, αν ένας αριθμός ισούται με 2 ν θα έχει έναν 1 και τα υπόλοιπα bits μηδενικά ενώ αν ένας αριθμός ισούται με 2 ν -1 θα αποτελείται μόνον από 1 (όπου ν ακέραιος θετικός αριθμός). Ο αριθμός 255 είναι 256-1=2 8-1, άρα θα αποτελείται από 8 άσσους. Ο αριθμός 65535 είναι 65536-1=2 16-1, άρα θα αποτελείται από 16 άσσους. 255 FFh 65535 FFFFh 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Ο αριθμός 128 είναι 2 7 και ο 32768 είναι 2 15, άρα θα αποτελούνται από έναν 1 και τα υπόλοιπα μηδενικά (7 και 15 αντίστοιχα). 128 80h 32768 8000h 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2. Έστω η περιοχή των αριθμών του δυαδικού συστήματος των 8 bits (ενός byte), δηλαδή από 00000000 (0) μέχρι 11111111 (255). Να χωριστεί η περιοχή αυτή σε 8 τμήματα και να γραφεί η αρχή και το τέλος κάθε τμήματος στο δυαδικό και δεκαεξαδικό σύστημα. Για να χωρίσουμε μία περιοχή δυαδικών αριθμών σε δύο τμήματα χρειαζόμαστε το high bit (πλέον σημαντικό ψηφίο). Αν αυτό είναι 0 έχουμε το πρώτο τμήμα (χαμηλό) και αν είναι 1 το δεύτερο (υψηλό τμήμα). Bin 0......... 1......... Για να χωρίσουμε μία περιοχή δυαδικών αριθμών σε 4 τμήματα χρειαζόμαστε τα δύο high bits (πλέον σημαντικά ψηφία). Αν αυτά είναι 00 έχουμε το πρώτο τμήμα (χαμηλό), αν είναι 01 το δεύτερο, αν είναι 10 το τρίτο και αν είναι 11 το τέταρτο (υψηλό) τμήμα. Ασκήσεις στα συστήματα αρίθμησης Νικολαΐδης Νικ. Σελ. - 2 -
Bin 00........ 0011 1111 3Fh 0100 0000 40h 01........ 10........ 1011 1111 BFh 1100 0000 C0h 11........ Συνεχίζοντας το παραπάνω σκεπτικό, για να χωρίσουμε την περιοχή των αριθμών του ενός byte σε οκτώ τμήματα, όπως ζητάει η άσκηση, πρέπει να χρησιμοποιήσουμε τα 3 bits υψηλής τάξης. Ξεκινάμε, δηλαδή, πάντοτε από αριστερά, από τα high bits. Bin 000....... 0001 1111 1Fh 0010 0000 20h 001....... 0011 1111 3Fh 0100 0000 40h 010....... 0101 1111 5Fh 0110 0000 60h 011....... 100....... 1001 1111 9Fh 1010 0000 A0h 101....... 1011 1111 BFh 1100 0000 C0h 110....... 1101 1111 DFh 1110 0000 E0h 111....... Ασκήσεις στα συστήματα αρίθμησης Νικολαΐδης Νικ. Σελ. - 3 -
3. Να γραφούν στο δυαδικό και δεκαεξαδικό σύστημα οι δ/νσεις αρχής και τέλους της τελευταίας σελίδας της μνήμης. Σελίδα μνήμης είναι τα πρώτα 8 bits της 16μπιτης δ/νσης, ή τα δύο πρώτα 16δικά ψηφία από τα 4 της δ/νσης. Να θυμηθούμε εδώ ότι μελετάμε στο μάθημα αυτό 8μπιτο μικροελεγκτή που έχει 8μπιτο διάδρομο δεδομένων και 16μπιτο διάδρομο δ/νσεων. Έτσι, η σελίδα 0 της μνήμης θα αποτελείται από τις δ/νσεις από 00000000.00000000 μέχρι 00000000.11111111, ή στο 16δικό από 00.00h μέχρι 00.FFh. Η τελευταία σελίδα της μνήμης θα αποτελείται από τις δ/νσεις από 11111111.00000000 μέχρι 11111111.11111111, ή στο 16δικό από FF.00h μέχρι FF.FFh. 4. Το τρίτο όγδοο των διευθύνσεων της μνήμης να χωριστεί σε 4 τμήματα και να γραφούν οι δ/νσεις αρχής και τέλους κάθε τμήματος στο δυαδικό και δεκαεξαδικό σύστημα. Όπως φαίνεται σε προηγούμενη άσκηση, το τρίτο όγδοο θα αποτελείται από τις δ/νσεις που αρχίζουν από 010. Σημειώστε ότι το πρώτο όγδοο είναι το 000. 0100.0000 (40h) μέχρι 0101.1111 (5Fh). Προσοχή, σημαντικό: τα bits που μεταβάλλονται στο τμήμα αυτό είναι 5, άρα αυτό το τμήμα θα περιέχει 2 5 =32 αριθμούς, στο δεκαδικό από 64 μέχρι 95 (95-64+1=32). Για να χωρίσουμε το τμήμα αυτό σε 4 τμήματα θα πάρουμε τα δύο επόμενα bits (2 2 =4). Αυτά θα δώσουν 4 συνδυασμούς, έναν για κάθε τμήμα (00, 01, 10 και 11). Έτσι, τα 4 ζητούμενα τμήματα θα είναι τα εξής. o 0100.0000 μέχρι 0100.0111 (40h 47h) o 0100.1000 μέχρι 0100.1111 (48h 4Fh) o 0101.0000 μέχρι 0101.0111 (50h 57h) o 0101.1000 μέχρι 0101.1111 (58h 5Fh) 5. Οι αριθμοί του δεκαδικού συστήματος 872 και 956 να μετατραπούν στον κώδικα packed BCD και να εκτελεστεί η πρόσθεσή τους στον κώδικα αυτόν. Σημειώσεις: α) αν αναφέρεται σκέτο κώδικας BCD εννοείται ο packed BCD β) για την πρόσθεση στο δυαδικό σύστημα εφαρμόζουμε 0+0=0, 0+1=1, 1+0=1 και 1+1=10 (ή άθροισμα 0 και κρατούμενο 1). Ασκήσεις στα συστήματα αρίθμησης Νικολαΐδης Νικ. Σελ. - 4 -
8421 8421 8421 872 1000 0111 0010 +956 1001 0101 0110 1828 1000 άθροισμα 2 πρώτων ψηφίων=8 1100 άθροισμα 12 στο δυαδικό + 0110 Προσθέτουμε το 6 + 1 0010 Άθροισμα 12 στον BCD 1 0010 8+9+1 στο δυαδικό + 0110 Προσθέτουμε το 6 1 1000 18 στον BCD 0001 1000 0010 1000 Τελικό άθροισμα στον BCD Ασκήσεις στα συστήματα αρίθμησης Νικολαΐδης Νικ. Σελ. - 5 -