NEWSLETTER

Συπληρώστε το email σας
για να λάβετε τις προσφορές
και τα νέα της Bookstation

Κατηγορίες / . / Έλληνες Εκδότες / Τ. / T.. / Τεχνολογία και Σχεδίαση Ψηφιακών Συστημάτων 3η έκδοση

SΜΑSΗ CUΤ ΡΒ

Τεχνολογία και Σχεδίαση Ψηφιακών Συστημάτων 3η έκδοση
Βογιατζής Ι.

Εκδόσεις
Ιδιωτική Έκδοση

ISBN: 978-618-5309-73-2
Κωδικός: 86197060
Σελίδες: 900
Σχήμα: 21cm x 29cm
Εξώφυλλο: Χαρτόδετο
Ημερομηνία έκδοσης: 2019

Τιμή | 78,8 €

προσθήκη στο καλάθι

 

Κεφάλαιο 1. Συστήματα αρίθμησης και αναπαράσταση πληροφορίας Περιεχόμενα 1.1 Αριθμητικά συστήματα 1.2 Μετατροπή αριθμών από ένα σύστημα σε άλλο 1.3 Πράξεις στο δυαδικό σύστημα 1.4 Πράξεις στο δεκαεξαδικό σύστημα 1.5 Ασκήσεις ?εφαρμογές 1.6 Αναπαράσταση και κωδικοποίηση πληροφοριών 1.7 Παράσταση αρνητικών αριθμών 1.8 Παράσταση πραγματικών αριθμών 1.9 Παράσταση χαρακτήρων Εισαγωγή Στο Κεφάλαιο αυτό θα δούμε πώς αναπαριστουύμε πληροφορίες στον υπολογιστή. Οι πληροφορίες αναπαρίστανται στο δυαδικό σύστημα. Θα εξετάσουμε το δυαδικό σύστημα, καθώς και το δεκαεξαδικό σύστημα αρίθμησης, που δίνει ένα συμπαγή τρόπο αναπαράστασης, ενώ παράλληλα η μετατροπή από το σύτημα αυτό στο δυαδικό είναι άμεση. Επιπλέον, θα παρουσιάσουμε τον τρόπο εκτέλεση των πράξεων στα δύο αυτά συστήματα. Στη συνέχεια, να αναφερθούμε στον τρόπο αναπαράστασης αρνητικών καθώς και πραγματικών αριθμών καθώς επίσης και μη αριθμητικών πληροφοριών (χαρακτήρων) στον υπολογιστή. 1.1 Αριθμητικά Συστήματα Ένα αριθμητικό σύστημα αποτελείται από ένα σύνολο ψηφίων και κανόνες εκτέλεσης των πράξεων ανάμεσα στους αριθμούς με βάση τα ψηφία αυτά. Βάση (base) ενός αριθμητικού συστήματος είναι ένας αριθμός b ο οποίος χαρακτηρίζει το σύστημα και ο οποίος έχει τις ακόλουθες ιδιότητες.  οι πράξεις γίνονται με υπόλοιπο ως προς αυτό τον αριθμό  το πλήθος των διαφορετικών ψηφίων του συστήματος είναι b Τα πιο συχνά χρησιμοποιούμενα συστήματα είναι το δεκαδικό (με βάση το 10) το οποίο χρησιμοποιούμε στην καθημερινή ζωή, το δυαδικό (με βάση το 2), το οκταδικό (με βάση το 8) και το δεκαεξαδικό (με βάση το 16). Η γνώση του δυαδικού συστήματος είναι ιδιαίτερα χρήσιμη στην κατανόηση των αρχών λειτουργίας των υπολογιστικών συστημάτων διότι η απεικόνιση της πληροφορίας και οι πράξεις στους υπολογιστές γίνονται στο δυαδικό σύστημα αρίθμησης. Το δεκαεξαδικό σύστημα από την άλλη μεριά έχει το πλεονέκτημα ότι υπάρχει ένας εύκολος τρόπος μετατροπής των αριθμών από το δυαδικό στο δεκαεξαδικό σύστημα και αντίστροφα, ενώ το πλήθος των ψηφίων ενός αριθμού στο δεκαεξαδικό σύστημα είναι πολύ μικρότερο από το πλήθος των ψηφίων του ίδιου αριθμού στο δυαδικό σύστημα. Έτσι, στους υπολογιστές συχνά, αντί να αναφέρουμε τη δυαδική αναπαράσταση ενός αριθμού χρησιμοποιούμε για πρακτικούς λόγους τη δεκαεξαδική αναπαράσταση. Στον επόμενο πίνακα φαίνονται τα ψηφία τα οποία χρησιμοποιούνται σε κάθε ένα από τα συστήματα αυτά. Δυαδικό σύστημα Οκταδικό σύστημα Δεκαδικό σύστημα Δεκαεξαδικό σύστημα 0 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 8 9 A B C D E F Τα ψηφία A, B, C, D, E, F χρησιμοποιούνται στο δεκαεξαδικό σύστημα για να εκφράσουν τους αριθμούς 11, 12, 13, 14, 15, για τους οποίους δεν υπάρχουν αντίστοιχα ψηφία στο δεκαδικό σύστημα. Η γενική μορφή παράστασης ενός αριθμού σε ένα αριθμητικό σύστημα είναι η ακόλουθη: Ν=am-1 bm-1 + am-2 bm-2 + ? a1 b1 +a0 b0 + a-1 b-1 + a-2 b-2 + ? a-n b-n Τα ψηφία am-1 bm-1 + am-2 bm-2 + ? a1 b1 +a0 b0 είναι το ακέραιο μέρος του αριθμού, ενώ τα a-1 b-1 + a-2 b-2 + ? a-n b-n είναι το κλασματικό του μέρος. Ένας αριθμός Χ μπορεί να εκφραστεί σε οποιοδήποτε αριθμητικό σύστημα με βάση β, και συμβολίζουμε (Χ)β. Έτσι, είναι δυνατό να επιβεβαιώσει κανείς ότι ο ίδιος αριθμός (28 στο δεκαδικό σύστημα) εκφράζεται στα συστήματα που αναφέρθηκαν όπως φαίνεται στη συνέχεια. (28)10= 2x101 + 8x100 (28)8 = 38 1 + 48 0 =(34)8 (28)10= 1x161 + 12x160 = (1C)16 (28)10= 1x24 + 1x23 + 1x22 + 0x21 + 0x20 = (11100)2 Αντίστροφα, η ίδια ακολουθία ψηφίων μπορεί να συμβολίζει διαφορετικούς αριθμούς σε διαφορετικά συστήματα, για παράδειγμα, (11)16= 5x161 + 5x160= 80 + 5 = (85)10 (11)10= 1x101 + 1x100 = (11)10 (11)2 = 1x21 + 1x20= 2 + 1 = (3)10 1.2 Μετατροπή αριθμών από ένα σύστημα αρίθμησης σε άλλο Στην παράγραφο αυτή θα αναφερθούμε στις διαδικασίες μετατροπής ενός αριθμού από ένα σύστημα αρίθμησης σε κάποιο άλλο. Πιο συγκεκριμένα, θα παρουσιάσουμε τις διαδικασίες μετατροπής αριθμών από (α) το δυαδικό ή το δεκαεξαδικό στο δεκαδικό, (β) το δεκαδικό στο δυαδικό ή δεκαεξαδικό και (γ) το δυαδικό στο δεκαεξαδικό και αντίστροφα. α. Μετατροπή από δυαδικό, οκταδικό ή δεκαεξαδικό σε δεκαδικό Για να μετατρέψουμε έναν αριθμό από το δυαδικό ή το δεκαεξαδικό στο δεκαδικό σύστημα αρίθμησης υπολογίζουμε την τιμή της παράστασης am-1 bm-1 + am-2 bm-2 + ? a1 b1 +a0 b0 όπου με b συμβολίζουμε τη βάση του συστήματος, η οποία είναι το 2 ή το 16. Για παράδειγμα, για να μετατρέψουμε τον αριθμό (11001)2 στο δεκαδικό σύστημα, υπολογίζουμε την τιμή της παράστασης 1x24+1x23+0x22+0x21+1x20=16+8+1=25 β. Μετατροπή από το δεκαδικό στο δυαδικό, οκταδικό ή το δεκαεξαδικό Η μετατροπή αυτή γίνεται γενικά σε δυο φάσεις. Στην πρώτη φάση μετατρέπεται το ακέραιο μέρος του αριθμού, ενώ στη δεύτερη μετατρέπεται το κλασματικό μέρος. Στη συνέχεια θα αναφερθούμε μόνο στη μετατροπή του ακεραίου μέρους του αριθμού. Για την περιγραφή της διαδικασίας μετατροπής του κλασματικού μέρους, μπορεί κανείς να ανατρέξει στη βιβλιογραφία στο τέλος του Κεφαλαίου. Μετατροπή ακεραίου μέρους Για να μετατρέψουμε το ακέραιο μέρος του αριθμού, το διαιρούμε με τη βάση του συστήματος (2 ή 16) και παίρνουμε ένα υπόλοιπο (Υ) και ένα πηλίκο (Π). Το πηλίκο διαιρείται και πάλι με τo β και παίρνουμε ένα νέο πηλίκο Π και υπόλοιπο Υ. Η διαδικασία αυτή επαναλαμβάνεται μέχρι το πηλίκο Π να γίνει 0. Η ζητούμενη αναπαράσταση είναι τα υπόλοιπα (Υ), με την αντίστροφη σειρά από εκείνη που τα βρήκαμε. Για παράδειγμα, στο επόμενο Σχήμα φαίνεται η διαδικασία μετατροπής του αριθμού 28 στο δυαδικό και το δεκαεξαδικό σύστημα αντίστοιχα. Οι αναπαραστάσεις του δεκαδικού αριθμού 28 στα δύο συστήματα είναι (11100)2 και (1C)16. 28 2 0 2 14 0 7 2 1 3 2 1 1 2 1 0 28 16 12 16 1 1 0 (28)10=(11100)2 (28)10=(1C)16 Σχήμα: Μετατροπή του αριθμού (28)10 στο δυαδικό και το δεκαεξαδικό σύστημα αρίθμησης Μετατροπή κλασματικού μέρους Για τη μετατροπή του κλασματικού μέρους ενός δεκαδικού αριθμού στο δυαδικό σύστημα εργαζόμαστε ως εξής: πολλαπλασιάζουμε τον αριθμό επί δύο. Παίρνουμε το ακέραιο μέρος του αποτελέσματος και με το κλασματικό μέρος επαναλαμβάνουμε την προηγούμενη διαδικασία. Η διαδικασία συνεχίζεται έως ότου βρούμε στο κλασματικό μέρος του αριθμού το 0, ή (αν αυτό δε γίνει) μέχρι να φτάσουμε στην επιθυμητή ακρίβεια (π.χ. 3 κλασματικά δυαδικά ψηφία). Για το αποτέλεσμα παίρνουμε τα ψηφία που βρήκαμε στο ακέραιο μέρος κάθε πράξης. Παράδειγμα: Να μετατραπεί ο αριθμός (0,375)10 στο δυαδικό σύστημα αρίθμησης. Η διαδικασία φαίνεται στον ακόλουθο πίνακα. αριθμός πολλαπλασιασμός επί 2 αποτέλεσμα ακέραιο μέρος κλασματικό μέρος 0,375 2 0,75 0 0,75 0,75 2 1,5 1 0,5 0,5 2 1 1 0 Με βάση τον παραπάνω πίνακα, φτάσαμε σε αποτέλεσμα με κλασματικό μέρος 0. Επομένως η διαδικασία ολοκληρώθηκε, και το αποτέλεσμα είναι (0,375)10 = (0,011)2. Παράδειγμα: Να μετατραπεί ο αριθμός (0,4276)10 στο δυαδικό σύστημα. Αν χρειαστεί, να γίνει στρογγυλοποίηση στο 5ο κλασματικό ψηφίο. Η διαδικασία φαίνεται στον ακόλουθο πίνακα. αριθμός πολλαπλασιασμός επί 2 αποτέλεσμα ακέραιο μέρος κλασματικό μέρος 0,4276 2 0,8552 0 0,8552 0,8552 2 1,7104 1 0,7104 0,7104 2 1,4208 1 0,4208 0,4208 2 0,8416 0 0,8416 0,8416 2 1,6832 1 0,6832 Στο σημείο αυτό δεν έχουμε φτάσει σε αποτέλεσμα με 0 στο κλασματικό μέρος, επομένως προβαίνουμε σε στρογγυλοποίηση το αριθμού και μπορούμε να απαντήσουμε ότι (0,4276)10 = (0,01101)2. Αξίζει να σημειωθεί ότι, στην πραγματικότητα, ο αριθμός που βρήκαμε είναι διαφορετικός από τον αρχικό. Πιο συγκεκριμένα, ο αριθμός που βρήκαμε είναι στο δεκαδικό σύστημα ο 02 -1 + 12 -2 + 12 -3 + 02 -4 + 12 -5 = = 0,25 + 0,125 + 0,03125 = (0,40625)10 Η διαφορά αυτή (από το 0,4276 στο 0,40625) οφείλεται στο λάθος στρογγυλοποίησης και είναι τόσο μικρότερη όσο πιο πολλά δυαδικά ψηφία χρησιμοποιήσουμε. γ. Μετατροπή από δυαδικό σε δεκαεξαδικό και αντίστροφα Υπάρχουν δύο τρόποι για να μετατρέψουμε έναν αριθμό από το δυαδικό στο δεκαεξαδικό σύστημα αρίθμησης και αντίστροφα. Ο πρώτος τρόπος είναι να χρησιμοποιήσουμε ως ενδιάμεσο το δεκαδικό σύστημα. Στον τρόπο αυτό μετατρέπουμε από το ένα σύστημα στο δεκαδικό και στη συνέχεια από το δεκαδικό στο άλλο όπως περιγράψαμε προηγουμένως. Στο δεύτερο τρόπο μετατρέπουμε απευθείας από το ένα σύστημα στο άλλο. Οι δύο αυτοί τρόποι περιγράφονται στη συνέχεια. Μετατροπή μέσω του δεκαδικού Για να μετατρέψουμε το δεκαεξαδικό αριθμό 77F στο δυαδικό σύστημα μπορούμε να τον μετατρέψουμε πρώτα στο δεκαδικό αριθμό 7x162 + 7x161 + 15x160 = (1919)10 Στη συνέχεια μετατρέπουμε το δεκαδικό αριθμό στον αντίστοιχο δυαδικό αριθμό όπως φαίνεται στη συνέχεια. 1919 2 2 2 2 2 1 959 1 479 1 239 119 2 2 1 1 59 29 1 14 2 2 2 2 0 7 1 3 1 1 1 0 1 (1919)10=(11101111111)2 Σχήμα: Μετατροπή του αριθμού (1919)10 στο δυαδικό σύστημα αρίθμησης Επομένως, η δυαδική παράσταση του αριθμού (77F)16 είναι η (11101111111)2. Αντίστροφα, για τη δεκαεξαδική παράσταση του αριθμού (11101111111)2 βρίσκουμε πρώτα τη δεκαδική αναπαράσταση που είναι 2 10+29+28+26+25+24+23+22+21+20=1919 Στη συνέχεια η μετατροπή στο δεκαεξαδικό σύστημα θα δώσει (77Β)16. 1919 16 16 16 15 119 7 7 7 0 (1919)10=(77F)16 Σχήμα: Μετατροπή του αριθμού (1919)10 στο δεκαεξαδικό σύστημα αρίθμησης Απευθείας μετατροπή Η απευθείας μετατροπή αριθμών από το δυαδικό στο δεκαεξαδικό σύστημα και αντίστροφα στηρίζεται στο γεγονός ότι 16=24 , επομένως ένα ψηφίο στο δεκαεξαδικό σύστημα αντιστοιχεί σε τέσσερα ακριβώς ψηφία στο δυαδικό σύστημα. Με βάση την παρατήρηση αυτή μπορούμε να ακολουθήσουμε τη διαδικασία που περιγράφουμε στη συνέχεια. Για την απευθείας μετατροπή ενός δεκαεξαδικού αριθμού στο δυαδικό σύστημα αντικαθιστούμε κάθε ψηφίο του αριθμού με ένα τετραψήφιο δυαδικό αριθμό σύμφωνα με τον ακόλουθο πίνακα. δεκαεξαδικό ψηφίο δυαδικά ψηφία 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 Μπορεί κανείς να παρατηρήσει ότι ο δυαδικός αριθμός (π.χ. 1100) είναι η έκφραση του δεκαεξαδικού ψηφίου στο δυαδικό σύστημα (π.χ. C). Έτσι, για παράδειγμα, ο δεκαεξαδικός αριθμός 77F αντιστοιχεί στο δυαδικό αριθμό 0111 0111 1111 όπως φαίνεται στη συνέχεια. 7 7 F 0111 0111 1111 Αντίστροφα, για να μετατρέψουμε έναν αριθμό από το δυαδικό σύστημα στο δεκαεξαδικό, χωρίζουμε τα ψηφία του σε τετράδες προσθέτοντας, αν χρειαστεί, μηδενικά στην αρχή και στο τέλος του αριθμού (μετά την υποδιαστολή) και αντιστοιχούμε σε κάθε τετράδα το αντίστοιχο δεκαεξαδικό ψηφίο. Έτσι, ο δυαδικός αριθμός 1 1010 1101 αντιστοιχεί στο δεκαεξαδικό αριθμό 1AD όπως φαίνεται στη συνέχεια (με πλάγια γράμματα φαίνονται τα μηδενικά που προσθέσαμε στην αρχή του αριθμού προκειμένου να συμπληρωθούν τετράδες ψηφίων). 0001 1010 1101 1 A D Μπορεί κανείς να διαπιστώσει ότι η απευθείας μετατροπή είναι πολύ πιο εύκολη και γρήγορη από ότι η μετατροπή χρησιμοποιώντας το δεκαδικό σύστημα. Μετατροπή από το οκταδικό στο δυαδικό και αντίστροφα Η μετατροπή αυτή μπορεί να γίνει μέσω του δεκαδικού ή απευθείας. Για την απευθείας μετατροπή αριθμών από το δυαδικό στο οκταδικό και αντίστροφα στηριζόμαστε στο γεγονός ότι, παρόμοια με το δεκαεξαδικό, σύστημα, ισχύει ότι 8=23 , επομένως ένα ψηφίο στο δεκαεξαδικό σύστημα αντιστοιχεί σε τρία ακριβώς ψηφία στο δυαδικό σύστημα. Με βάση την παρατήρηση αυτή μπορούμε να ακολουθήσουμε τη διαδικασία που περιγράφουμε στη συνέχεια. Για την απευθείας μετατροπή ενός οκταδικού αριθμού στο δυαδικό σύστημα αντικαθιστούμε κάθε ψηφίο του αριθμού με ένα τριψήφιο δυαδικό αριθμό σύμφωνα με τον ακόλουθο πίνακα. δεκαεξαδικό ψηφίο δυαδικά ψηφία 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 Μπορεί κανείς να παρατηρήσει ότι ο δυαδικός αριθμός (π.χ. 100) είναι η έκφραση του οκταδικού ψηφίου στο δυαδικό σύστημα (π.χ. 4). Έτσι, για παράδειγμα, ο οκταδικός αριθμός 773 αντιστοιχεί στο δυαδικό αριθμό 111 111 011 όπως φαίνεται στη συνέχεια. 7 7 3 111 111 011 Αντίστροφα, για να μετατρέψουμε έναν αριθμό από το δυαδικό σύστημα στο δεκαεξαδικό, χωρίζουμε τα ψηφία του σε τριάδες προσθέτοντας, αν χρειαστεί, μηδενικά στην αρχή και στο τέλος του αριθμού (μετά την υποδιαστολή) και αντιστοιχούμε σε κάθε τριάδα το αντίστοιχο οκταδικό ψηφίο. Έτσι, ο δυαδικός αριθμός 1 101 101 αντιστοιχεί στον οκταδικό αριθμό 155 όπως φαίνεται στη συνέχεια (με πλάγια γράμματα φαίνονται τα μηδενικά που προσθέσαμε στην αρχή του αριθμού προκειμένου να συμπληρωθούν τριάδες ψηφίων). 001 101 101 1 5 5 Μετατροπή από το δεκαεξαδικό στο οκταδικό σύστημα μέσω του δυαδικού Για να μετατρέψουμε ένα αριθμό από το δεκαεξαδικό σύστημα στο οκταδικό μετατρέπουμε τον αριθμό στον αντίστοιχο δυαδικό και στη συνέχεια το δυαδικό αριθμό στο οκταδικό σύμφωνα με τα παραπάνω. Για παράδειγμα, η διαδικασία μετατροπής του δεκαεξαδικού αριθμού 3FA στο οκταδικό σύστημα, φαίνεται στον ακόλουθο πίνακα. 3 F A 0011 1111 1010 001 111 111 010 1 7 7 2 Επομένως, η οκταδική αναπαράσταση του δεκαεξαδικού αριθμού (3FA)16 είναι ο οκταδικός αριθμός (1772)8. 1.3 Πράξεις στο δυαδικό σύστημα Στην παράγραφο αυτή θα περιγράψουμε τον τρόπο εκτέλεσης των τεσσάρων βασικών πράξεων (πρόσθεση, αφαίρεση, πολλαπλασιασμός και διαίρεση) στο δυαδικό σύστημα. Το να γνωρίζουμε τον τρόπο εκτέλεσης των πράξεων στο δυαδικό σύστημα, θα μας βοηθήσει να καταλάβουμε τον τρόπο με τον οποίο πραγματοποιείται η εκτέλεση των πράξεων στο υπολογιστικό σύστημα. 1.3.1 Πρόσθεση Στην πρόσθεση ξεκινάμε από αριστερά και προσθέτουμε τα αντίστοιχα ψηφία των αριθμών, κάθε φορά προσθέτοντας το κρατούμενο που δημιουργείται στα υψηλότερης τάξης ψηφία. Για την κατανόηση της εκτέλεσης της πρόσθεσης στο δυαδικό σύστημα θα μας βοηθήσει ο επόμενος πίνακας, που δίνει για τα δυνατά ζεύγη των προσθετέων ψηφίων (α, β) και του κρατουμένου (cin) , το αποτέλεσμα (S) και το κρατούμενο προς την επόμενη βαθμίδα (cout). α β cin s cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Στο επόμενο Σχήμα φαίνεται η διαδικασία πρόσθεσης των αριθμών (1110)2 και (1010)2 που δίνει αποτέλεσμα (11000)2. Η αντίστοιχη πρόσθεση στο δεκαδικό σύστημα δίνει αποτέλεσμα 14+10=24. Η διαδικασία της πρόσθεσης παρουσιάζεται από τα δεξιά προς τα αριστερά όπως δείχνει η αρίθμηση των βημάτων. α=0 β=0 cin=0 s=0 cout=0 α=1 β=1 cin=0 s=0 cout=1 α=1 β=0 cin=1 s=0 cout=1 α=1 β=0 cin=1 s=0 cout=1 1 1 1 0 + 1 0 1 0 0 1 1 1 0 + 1 0 1 0 1 0 0 0 1 1 1 0 + 1 0 1 0 0 0 1 1 1 0 + 1 0 1 0 0 0 0 1 1 1 0 + 1 0 1 0 1 1 0 0 0 α=0 β=0 cin=1 s=1 cout=0 5 4 3 2 1 Σχήμα: Πρόσθεση στο δυαδικό σύστημα 1.3.2 Αφαίρεση Στην αφαίρεση ξεκινάμε επίσης από αριστερά αφαιρώντας τα αντίστοιχα ψηφία των αριθμών. Σε κάθε βαθμίδα δημιουργείται ένα δανεικό (borrow) ψηφίο, το οποίο προστίθεται στο ψηφίο του αφαιρέτη της επόμενης βαθμίδας. Ο πίνακας που ακολουθεί δίνει για τα ζεύγη των ψηφίων του αφαιρέτη, του αφαιρετέου και του δανεικού, το αποτέλεσμα και το δανεικό προς την επόμενη βαθμίδα. α β bin s bout 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Για παράδειγμα, η διαδικασία αφαίρεσης των αριθμών (1100)2 και (1010)2 φαίνεται στο επόμενο Σχήμα. 1 1 0 0 - 1 0 1 0 1 0 1 1 0 0 - 1 0 1 0 0 α=0 β=0 bin=0 d=0 bout=0 α=0 β=1 bin=0 d=1 bout=1 1 1 0 0 - 1 0 1 0 0 1 0 α=1 β=0 bin=1 d=1 bout=0 1 1 0 0 - 1 0 1 0 0 0 1 0 α=1 β=1 bin=0 d=0 bout=0 ΣΧΗΜΑ 1.7: Αφαίρεση στο δυαδικό σύστημα Η αντίστοιχη αφαίρεση στο δεκαδικό σύστημα θα έδινε αποτέλεσμα 12-10=2. 1.3.3 Πολλαπλασιασμός Ο πολλαπλασιασμός στο δυαδικό σύστημα αρίθμησης γίνεται, όπως και στο δεκαδικό, με διαδοχικές προσθέσεις. Κάθε ψηφίο του πολλαπλασιαστή πολλαπλασιάζεται με όλα τα ψηφία του πολλαπλασιαστέου και σχηματίζει ένα μερικό γινόμενο. Κάθε μερικό γινόμενο γράφεται κάτω από το προηγούμενο ολισθημένο κατά μία θέση προς τα αριστερά. Στη συνέχεια, προσθέτουμε ανά δύο τα μερικά γινόμενα. Στο επόμενο Σχήμα φαίνεται ο δυαδικός πολλαπλασιασμός των αριθμών (1110)2 και (110)2. Ο πολλαπλασιασμός στο δεκαδικό σύστημα θα έδινε 14x6=84=(1010100)2. 1 1 1 0 x 1 1 0 0 0 0 0 1 1 1 0 x 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 x 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 x 1 1 0 0 0 0 0 + 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 x 1 1 0 1 1 1 0 0 + 1 1 1 0 1 0 1 0 1 0 0 μερικό γινόμενο 1 μερικό γινόμενο 2 μερικό γινόμενο 3 μερικό άθροισμα ΣΧΗΜΑ 1.8: Πολλαπλασιασμός στο δυαδικό σύστημα 1.3.4 Διαίρεση Η διαίρεση στο δυαδικό σύστημα πραγματοποιείται με διαδοχικές αφαιρέσεις του διαιρέτη από το διαιρετέο. Στο επόμενο Σχήμα φαίνεται η διαδικασία διαίρεσης των αριθμών (11011)2 δια (101)2 που δίνει πηλίκο (101)2 και υπόλοιπο (10)2. Η αντίστοιχη πράξη στο δεκαδικό σύστημα (25 : 5) θα έδινε πηλίκο 5 και υπόλοιπο 2. 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 Σχήμα: Διαίρεση στο δυαδικό σύστημα 1.4 Πράξεις στο δεκαεξαδικό σύστημα Η εκτέλεση των πράξεων στο δεκαεξαδικό σύστημα είναι πιο πολύπλοκη από ότι στο δυαδικό. Ο λόγος που μαθαίνουμε πράξεις στο σύστημα αυτό είναι ότι πολλές φορές χρησιμοποιούμε το δεκαεξαδικό σύστημα αντί του δυαδικού, επειδή το πλήθος των ψηφίων ενός αριθμού είναι πολύ μικρότερο από ότι στο δυαδικό σύστημα. 1.4.1 Πρόσθεση Η πρόσθεση στο δεκαεξαδικό σύστημα γίνεται όπως στο δεκαδικό, ξεκινώντας από τα αριστερά και προσθέτοντας ανά δύο τα ψηφία, προσθέτοντας ακόμη το κρατούμενο της προηγούμενης βαθμίδας (αν υπάρχει). Για να προσθέσουμε δύο ψηφία στο δεκαεξαδικό σύστημα υπολογίζουμε την αριθμητική τους τιμή (αν κάποιο από αυτά είναι μεταξύ του ?A? και του ?F?), προσθέτουμε τις αριθμητικές τους τιμές και διαιρούμε το αποτέλεσμα με το 16. Το υπόλοιπο της διαίρεσης είναι το ψηφίο του αποτελέσματος της άθροισης, ενώ το υπόλοιπο είναι το κρατούμενο προς την επόμενη βαθμίδα. Έτσι, η πρόσθεση 9 + 9 δίνει αποτέλεσμα (18)10 επομένως δίνει αποτέλεσμα 2 (18 mod 16) και κρατούμενο 1 (18 div 16). Για παράδειγμα, στο επόμενο Σχήμα φαίνεται η διαδικασία πρόσθεσης των αριθμών (1AD9)16 και (201D)16. α=9 β=D cin=0 s=6 cout=1 1 A D 9 + 2 0 1 D 6 1 A D 9 + 2 0 1 D F 6 α=D β=1 cin=1 s=F cout=0 1 A D 9 + 2 0 1 D A F 6 α=A β=0 cin=0 s=A cout=0 1 A D 9 + 2 0 1 D 3 A F 6 α=1 β=2 cin=0 s=3 cout=0 Σχήμα: Πρόσθεση στο δεκαεξαδικό σύστημα Η αντίστοιχη πράξη στο δεκαδικό σύστημα (6873 + 8221) δίνει αποτέλεσμα 15094 = (3AF6)16. 1.4.2 Αφαίρεση Η αφαίρεση στο δεκαεξαδικό σύστημα γίνεται όπως στο δεκαδικό, ξεκινώντας από τα αριστερά και αφαιρώντας το ψηφίο του αφαιρέτη από το ψηφίο του αφαιρετέου. Αν υπάρχει δανεικό από προηγούμενη βαθμίδα, προστίθεται στο ψηφίο του αφαιρέτη. Στην περίπτωση που το ψηφίο του αφαιρέτη είναι μεγαλύτερο από το ψηφίο του αφαιρετέου, δε δανειζόμαστε από την επόμενη βαθμίδα 10 όπως στο δεκαδικό σύστημα αρίθμησης), αλλά 16 (που είναι η βάση του συστήματος). Για παράδειγμα, η διαδικασία της αφαίρεσης των αριθμών (41177)10= (A0D9)16 και (8733)10=(221D)16 που δίνει αποτέλεσμα (32444)10= (7EBC)16 φαίνεται στο επόμενο Σχήμα. α=9 β=D bin=0 s=C bout=1 A 0 D 9 - 2 2 1 D C A 0 D 9 - 2 2 1 D B C α=D β=1 bin=1 s=B bout=0 A 0 D 9 - 2 2 1 D E B C α=0 β=2 bin=0 s=E bout=1 A 0 D 9 - 2 2 1 D 7 E B C α=A β=2 bin=1 s=7 bout=0 ΣΧΗΜΑ 1.11: Αφαίρεση στο δεκαεξαδικό σύστημα 1.4.3 Πολλαπλασιασμός Ο πολλαπλασιασμός στο δεκαεξαδικό σύστημα γίνεται όπως στο δεκαδικό. Κάθε ψηφίο του πολλαπλασιαστή πολλαπλασιάζεται με όλα τα ψηφία του πολλαπλασιαστέου και σχηματίζει ένα μερικό γινόμενο. Κάθε μερικό γινόμενο γράφεται κάτω από το προηγούμενο ολισθημένο κατά μία θέση προς τα αριστερά. Στη συνέχεια, προσθέτουμε ανά δύο τα μερικά γινόμενα. Ο πολλαπλασιασμός γίνεται (όπως και η πρόσθεση) πολλαπλασιάζοντας τις αριθμητικές τιμές των ψηφίων και παίρνοντας το πηλίκο και το υπόλοιπο ως προς 16 (αν υπάρχει κρατούμενο από το προηγούμενο ψηφίο προστίθεται στο γινόμενο αυτό). Έτσι ο πολλαπλασιασμός των ψηφίων 8 x 7 δίνει γινόμενο 8 (=56 mod 16) και κρατούμενο προς την επόμενη βαθμίδα 3 (=56 div 16). Για παράδειγμα, στο επόμενο Σχήμα φαίνεται η διαδικασία πολλαπλασιασμού των αριθμών (217)10 =(D9)16 και (29)10=(1D)16 που δίνει αποτέλεσμα (6243)10=(1895)16. D 9 x 1 D 5 D 9 x 1 D B 0 5 + D 9 1 8 9 5 D x 9 = 117 = 7 x 16 + 5 D x D + 7= 176 = 11 x 16 + 0 α=9 β=D cin=0 s=5 cout=7 D 9 x 1 D B 0 5 α=D β=D cin=7 s=0 cout=B D 9 x 1 D B 0 5 9 α=9 β=1 cin=0 s=9 cout=0 D 9 x 1 D B 0 5 D 9 α=D β=1 cin=0 s=D cout=0 Σχήμα: Πολλαπλασιασμός στο δεκαεξαδικό σύστημα 1.4.4 Διαίρεση Η διαίρεση γίνεται στο δεκαεξαδικό σύστημα όπως στο δεκαδικό. Υπολογίζουμε πόσες φορές χωράει ο διαιρέτης στα πρώτα ψηφία του διαιρετέου υπολογίζοντας ένα ψηφίο του πηλίκου. Στη συνέχεια υπολογίζουμε το γινόμενο του διαιρέτη με το ψηφίο του πηλίκου που υπολογίσαμε και το αφαιρούμε από τα ψηφία του διαιρετέου. Συνεχίζουμε ?κατεβάζοντας? κάθε φορά ένα ψηφίο του διαιρετέου μέχρι να τελειώσουν τα ψηφία του. Η δυσκολία που παρουσιάζει η διαίρεση δεκαεξαδικών αριθμών είναι ότι κάθε φορά που ?κατεβάζουμε? ψηφία του διαιρετέου πρέπει να δοκιμάσουμε ?πόσες φορές χωράει? ο διαιρέτης στα ψηφία αυτά και να κάνουμε τις αφαιρέσεις. Η διαδικασία αυτή συχνά είναι χρονοβόρα και κοπιαστική. Για παράδειγμα, στο επόμενο Σχήμα φαίνεται η διαδικασία διαίρεσης των αριθμών (217)10=(D9)16 και (29)10=(1D)16 που δίνει πηλίκο (7)10=(7)16 και υπόλοιπο (14)10=(Ε)16. D 9 1 D 7 1 D x 7 C B - C B 0 E Σχήμα: Διαίρεση στο δεκαεξαδικό σύστημα 1.5 Ασκήσεις - Εφαρμογές 1. Εκτελέστε τις ακόλουθες μετατροπές  (111)2=(Χ)10  (FFA)16=(X)10  (154)10 = (Χ)16  (22)10=(Χ)2  (10010010)2=(X)16  (65F)16=(X)2 2. Εκτελέστε τις ακόλουθες πράξεις στο δυαδικό σύστημα  111 + 1001  111-11  11 x 10  1111 : 11 3. Εκτελέστε τις ακόλουθες πράξεις στο δεκαεξαδικό σύστημα  AF9 + 11B  AA9 ? 1B8  AF x B  FF3 : 18 4. Να υπολογισθεί αναλυτικά ο αντίστοιχος δυαδικός, οκταδικός και δεκαεξαδικός αριθμός του δεκαδικού αριθμού 340,75. 5. Να δοθούν οι αναπαραστάσεις των κάτωθι αριθμών  (39516)10 = ( ? )8 = ( ? )2 = ( ? )16 με τη σειρά που προσδιορίζεται  (DF7A)16 = ( ? )8 6. Να γίνουν οι ακόλουθες πράξεις  (4AD9)16+(5EF4)16 = ( ? )16  (763)8+(317)8 = ( ? )8  (111110111)2+(11011011)2 = ( ? )2 7. Να μετατραπεί σε δυαδικό αριθμό ο δεκαεξαδικός BF75. Στη συνέχεια, ο δυαδικός αριθμός που θα προκύψει να μετατραπεί στον αντίστοιχό του στο οκταδικό σύστημα αρίθμησης. Αιτιολογήστε εν συντομία την απάντησή σας (Υπόδειξη: Και στις δύο περιπτώσεις, από δεκαεξαδικό σε δυαδικό και από δυαδικό σε οκταδικό, οι μετατροπές να γίνουν χωρίς ενδιάμεση μετατροπή σε άλλο αριθμητικό σύστημα). 8. Το άθροισμα των αριθμών (322)8 + (676)8 του οκταδικού συστήματος είναι:  (110)8  (1517)8  (1110)8  Κανένα από τα ανωτέρω 9. Οι αναπαραστάσεις του αριθμού (26590)10 του δεκαδικού συστήματος είναι:  (5F4A)16 = (110110100010010)2 =(54734)8  (6F37)16 = (101010010010101)2 =(43452)8  (64FΒ)16 = (110100110101011)2 =(55372)8  Κανένα από τα ανωτέρω 10. Το άθροισμα των αριθμών (BED)16 + (462)16 του δεκαεξαδικού συστήματος είναι:  (381)16  (F15)16  (F1B)16  Κανένα από τα ανωτέρω 11. Οι αναπαραστάσεις του αριθμού (28571)10 του δεκαδικού συστήματος είναι:  (6F5A)16 = (100110110011011)2 =(64644)8  (8F37)16 = (111011010010111)2 =(63657)8  (67DΒ)16 = (110011111101111)2 =(65672)8  Κανένα από τα ανωτέρω 12. Το άθροισμα των αριθμών (BAD)16 + (462)16 του δεκαεξαδικού συστήματος είναι:  (3E1)16  (F1E)16  (F1F)16  Κανένα από τα ανωτέρω 13. Οι αναπαραστάσεις του αριθμού (28571)10 του δεκαδικού συστήματος είναι:  (6F8Β)16 = (110110110011011)2 =(67644)8  (8F37)16 = (101011110010111)2 =(66637)8  (67FΒ)16 = (100011101101111)2 =(67673)8  Κανένα από τα ανωτέρω 14. Το άθροισμα των αριθμών (BAD)16 + (461)16 του δεκαεξαδικού συστήματος είναι:  (1E1)16  (F1E)16  (AED)16  Κανένα από τα ανωτέρω 15. Οι αναπαραστάσεις του αριθμού (28571)10 του δεκαδικού συστήματος είναι:  (6D8Β)16 = (110110110010011)2 =(67644)8  (8F27)16 = (101011110010111)2 =(66637)8  (67FΒ)16 = (100011100101111)2 =(67673)8  Κανένα από τα ανωτέρω 16. Το άθροισμα των αριθμών (342)8 + (576)8 του οκταδικού συστήματος είναι:  (1140)8  (517)8  (140)8  Κανένα από τα ανωτέρω 17. Οι αναπαραστάσεις του αριθμού (28571)10 του δεκαδικού συστήματος είναι:  (6F9Β)16 = (110111110011011)2 =(67633)8  (8F27)16 = (111011110010111)2 =(63637)8  (69FΒ)16 = (111011101101111)2 =(63673)8  Κανένα από τα ανωτέρω 18. Το άθροισμα των αριθμών (BAD)16 + (431)16 του δεκαεξαδικού συστήματος είναι:  (1E1)16  (FDE)16  (AED)16  Κανένα από τα ανωτέρω 19. Το άθροισμα των αριθμών (243)8 + (745)8 του οκταδικού συστήματος είναι:  (1211)8  (1101)8  (1210)8  Κανένα από τα ανωτέρω 20. Οι αναπαραστάσεις του αριθμού (28561)10 του δεκαδικού συστήματος είναι:  (6F82)16 = (110111110011111)2 =(67631)8  (8F26)16 = (111101110010111)2 =(63665)8  (68FΒ)16 = (110111011111101)2 =(63473)8  Κανένα από τα ανωτέρω 21. Το άθροισμα των αριθμών (ΑAD)16 + (451)16 του δεκαεξαδικού συστήματος είναι:  (1E2)16  (FDE)16  (EDE)16  Κανένα από τα ανωτέρω 22. Απαντήστε με σωστό ή λάθος σε κάθε μία από τις παρακάτω 6 προτάσεις. (Δεν είναι απαραίτητη η αιτιολόγηση των απαντήσεων αλλά κάθε λάθος απάντηση βαθμολογείται με -0,5):  Ο δεκαδικός αριθμός 21<10> αντιστοιχεί στο δυαδικό αριθμό 11001<2>.  Ο δεκαδικός αριθμός 32<10> αντιστοιχεί στο δυαδικό αριθμό 100011<2>. 23. Να μετατραπούν σε δυαδικούς αριθμούς των 8 bits οι δεκαδικοί αριθμοί 5110 και 1910. 24. Εφαρμόστε την παράσταση του συμπληρώματος ως προς 2 για να εκτελέσετε την πράξη της αφαίρεσης 5110 - 1910, χρησιμοποιώντας τις δυαδικές αναπαραστάσεις των αριθμών όπως υπολογίστηκαν στο ερώτημα (α). Τα ενδιάμεσα βήματα της αφαίρεσης να φαίνονται. 24. Απαντήστε με σωστό ή λάθος σε κάθε μία από τις παρακάτω προτάσεις.  Ο δεκαδικός αριθμός 25<10> αντιστοιχεί στο δυαδικό αριθμό 11001<2>.  Ο δεκαδικός αριθμός 33<10> αντιστοιχεί στο δυαδικό αριθμό 100011<2>. 25. Να μετατραπούν σε δυαδικούς αριθμούς των 8 bits οι δεκαδικοί αριθμοί 5210 και 1710. Στη συνέχεια εφαρμόστε την παράσταση του συμπληρώματος ως προς 2 για να εκτελέσετε την πράξη της αφαίρεσης 5210 - 1710, χρησιμοποιώντας τις δυαδικές αναπαραστάσεις των αριθμών όπως υπολογίστηκαν. 26. Δίνεται ο αριθμός 57 στο δεκαδικό σύστημα αρίθμησης. Ο αντίστοιχος αριθμός στο δυαδικό σύστημα είναι α. 100101 β. 111001 γ. 111011 δ. 101011 27. Η απεικόνιση του δεκαδικού αριθμού 170 σε λέξη των οκτώ δυαδικών ψηφίων είναι: α. 11001011 β. 00100100 γ. 10101010 δ. 10101100 28. Οι αναπαραστάσεις του αριθμού (28561)10 του δεκαδικού συστήματος είναι:  (6F82)16 = (110111110011111)2 =(67631)8  (8F26)16 = (111101110010111)2 =(63665)8  (68FΒ)16 = (110111011111101)2 =(63473)8  Κανένα από τα ανωτέρω 29. Το άθροισμα των αριθμών (ΑAD)16 + (451)16 του δεκαεξαδικού συστήματος είναι:  (1E2)16  (FDE)16  (EDE)16  Κανένα από τα ανωτέρω 1.6 Αναπαράσταση και κωδικοποίηση πληροφοριών 1.6.1 Τρόποι αναπαράστασης και κωδικοποίησης πληροφοριών Για να μπορέσουμε να αποθηκεύσουμε στον υπολογιστή πληροφορίες από τον εξωτερικό κόσμο, πρέπει να τις μετατρέψουμε σε μορφή την οποία να μπορεί να ?κατανοήσει? ο υπολογιστής. Όπως γνωρίζουμε, οι πληροφορίες που χρησιμοποιεί ένας υπολογιστής αναπαρίστανται στο εσωτερικό του κωδικοποιημένες με τη βοήθεια δυαδικών ψηφίων (binary digits, bits). Ένα δυαδικό ψηφίο μπορεί να πάρει μία από δύο τιμές, 0 ή 1. Οι πληροφορίες που αναπαρίστανται στον υπολογιστή είναι αριθμοί, χαρακτήρες, εντολές προς την ΚΜΕ, ήχοι και εικόνες (ακίνητες και κινούμενες) και πληροφορίες που εκφράζουν συνεχή μεγέθη (τιμές θερμοκρασίας, ταχύτητας, πίεσης). Στη συνέχεια θα περιγράψουμε συνοπτικά πώς κωδικοποιούνται και αναπαρίστανται στο εσωτερικό του υπολογιστή οι αριθμοί και οι χαρακτήρες. 1.6.1 Αναπαράσταση αριθμών Οι αριθμοί αναπαρίστανται στο δυαδικό σύστημα αρίθμησης. Στο σύστημα αυτό χρησιμοποιούνται τα ψηφία 0 και 1. Ο χώρος (ποσότητα μνήμης) που αφιερώνουμε για την αναπαράσταση ενός αριθμού εξαρτάται από το μήκος λέξης (word length) του υπολογιστή. Μια λέξη (word) εκφράζει τη μεγαλύτερη ποσότητα πληροφορίας πάνω στην οποία μπορεί να εκτελέσει μια πράξη ο υπολογιστής. Το μήκος λέξης είναι συνήθως πολλαπλάσιο των 8 δυαδικών ψηφίων. Στη μονάδα αυτή αναφερόμαστε με τον όρο byte (1 byte=8 bit). Οι πιο συνηθισμένες τιμές για το μέγεθος της λέξης είναι 1, 2, 4, ή 8 bytes (8, 16, 32 ή 64 δυαδικά ψηφία). Πριν συνεχίσουμε, πρέπει να αναφέρουμε ότι, όπως ακριβώς στο δεκαδικό σύστημα αρίθμησης μπορούμε, χρησιμοποιώντας n ψηφία, να αναπαραστήσουμε 10n διαφορετικούς αριθμούς (από το 00...0 μέχρι και το 99...9), έτσι ακριβώς και στο δυαδικό σύστημα αρίθμησης μπορούμε με m δυαδικά ψηφία να αναπαραστήσουμε 2m διαφορετικούς αριθμούς (από το 00...0 εως το 11...1). Έτσι, για m=3, μπορύμε να αναπαραστήσουμε τους 23=8 αριθμούς {000, 001, 010, 011, 100, 101, 110, 111}. Ο τρόπος με τον οποίο αναπαρίστανται οι αριθμοί στον υπολογιστή διαφέρει ανάλογα με το τι αριθμούς θέλουμε να αναπαραστήσουμε. Πιο συγκεκριμένα, διακρίνουμε τις ακόλουθες περιπτώσεις:  αν θέλουμε να αναπαραστήσουμε μόνο θετικούς ή θετικούς και αρνητικούς αριθμούς  αν θέλουμε να αναπαραστήσουμε ακέραιους ή πραγματικούς αριθμούς Έτσι, αν θέλουμε να αναπαραστήσουμε μόνο θετικούς ακέραιους αριθμούς, απλά κωδικοποιούμε τους αριθμούς από το δεκαδικό σύστημα στη δυαδική τους αναπαράσταση. Για παράδειγμα, έστω ένας υπολογιστής με μήκος λέξης 16 δυαδικά ψηφία. Εφόσον με 16 δυαδικά ψηφία μπορούμε να αναπαραστήσουμε 216 = 65.536 διαφορετικούς αριθμούς, μπορούμε να αναπαραστήσουμε τους θετικούς ακέραιους αριθμούς από το 0 έως και το 65.535. Παράδειγμα: Να παρασταθεί ο αριθμός (54)10 (54 στο δεκαδικό σύστημα) σε υπολογιστή με μήκος λέξης 8 δυαδικά ψηφία. Απάντηση: Για την παράσταση του αριθμού υπολογίζουμε αρχικά τη δυαδική αναπαράσταση η οποία είναι 110110. Στη συνέχεια, συμπληρώνουμε τον αριθμό από αριστερά με ?0?, και έτσι έχουμε την αναπαράσταση σε 8 δυαδικά ψηφία: 00110110 Παράδειγμα: Να παρασταθεί ο αριθμός (400)10 σε υπολογιστή με μήκος λέξης 8 δυαδικά ψηφία. Απάντηση: Η δυαδική παράσταση του αριθμού (400)10 είναι 110010000. Παρατηρούμε ότι για την παράσταση αυτή απαιτούνται 9 ψηφία, επομένως δε μπορεί να παρασταθεί σε υπολογιστή με μήκος λέξης 8 δυαδικών ψηφίων. 1.7 Παράσταση αρνητικών αριθμών Για την αναπαράσταση των αρνητικών ακεραίων αριθμών πρέπει να θυμόμαστε ότι το υψηλής τάξης δυαδικό ψηφίο του αριθμού χρησιμοποιείται στο να δείχνει αν ο αριθμός είναι θετικός ή αρνητικός. Έτσι, το εύρος των αριθμών που μπορούμε να παραστήσουμε είναι μικρότερο. Υπάρχουν τρεις τρόποι: η παράσταση μέτρου, η παράσταση συμπληρώματος ως προς ένα και η παράσταση συμπληρώματος ως προς δύο. 1.7.1 Παράσταση μέτρου Στην παράσταση μέτρου, χρησιμοποιούμε το αριστερότερο ψηφίο σαν ένδειξη του πρόσημου, και τα υπόλοιπα ψηφία για το μέτρο του αριθμού. Για την παράσταση του μέτρου του αριθμού εργαζόμαστε όπως στην περίπτωση των θετικών αριθμών. Παράδειγμα: Να παρασταθεί ο αρνητικός αριθμός (-18)10 με οκτώ δυαδικά ψηφία με παράσταση μέτρου. Απάντηση: θα εργαστούμε ως εξής. Βρίσκουμε την παράσταση του αριθμού 18 με οκτώ δυαδικά ψηφία (00010010)2. Στη συνέχεια αντιστρέφουμε το πρώτο ψηφίο, προκειμένου να δείξουμε οτι ο αριθμός είναι αρνητικός. Έτσι η ζητούμενη παράσταση είναι: 10010010. Παράδειγμα: Να παρασταθεί ο αριθμός (?200)10 σε υπολογιστή με μήκος λέξης 8 bit. Απάντηση: Βρίσκουμε τη δυαδική αναπαράσταση του αριθμού που είναι 11001000. Στο σημείο αυτό μπορούμε να παρατηρήσουμε ότι το υψηλής τάξης ψηφίο είναι 1. Επομένως, δε μπορούμε να αντιστρέψουμε για να δείξουμε ότι ο αριθμός είναι αρνητικός. Με άλλα λόγια, δε μπορούμε να παραστήσουμε τον αρνητικό αριθμό (200)10 με οκτώ δυαδικά ψηφία. Παράδειγμα: Ποιο αριθμό αναπαριστά η ποσότητα 11001000 σε υπολογιστή μήκους λέξης οκτώ δυαδικών ψηφίων ο οποίος μπορεί να παραστήσει αρνητικούς αριθμούς με παράσταση μέτρου; Απάντηση: Εφόσον το υψηλής τάξης ψηφίο του αριθμού χρησιμοποιείται ως ενδείκτης πρόσημου, η ποσότητα παριστά τον αντίθεο του αριθμού 01001000. Μετατρέποντας τον αριθμό αυτό στο δεκαδικό σύστημα βρίσκουμε ότι είναι ο αριθμός (72)10. Επομένως η αρχική ποσότητα είναι η παράσταση του αριθμού (-72)10. 1.7.2 Παράσταση Συμπληρώματος ως προς 1 Στην παράσταση συμπληρώματος ως προς 1, χρησιμοποιούμε το θετικό αριθμό και αντιστρέφουμε όλα τα ψηφία του. Έτσι, για να παραστήσουμε τον αριθμό ?18 με παράσταση συμπληρώματος ως προς 1, ξεκινάμε από την παράσταση του θετικού αριθμού 00010010 και αντιστρέφοντας τα ψηφία βρίσκουμε την παράσταση 11101101. 1.7.3 Παράσταση συμπληρώματος ως προς 2 Στην παράσταση συμπληρώματος ως προς 2, χρησιμοποιούμε το θετικό αριθμό, αντιστρέφουμε όλα τα ψηφία του και στη συνέχεια προσθέτουμε το ?1? στο χαμηλότερης τάξης (δεξιότερο) ψηφίο του αριθμού. Έτσι, για να παραστήσουμε τον αριθμό ?18 με παράσταση συμπληρώματος ως προς 2, ξεκινάμε από την παράσταση του θετικού αριθμού 00010010. Αντιστρέφοντας τα ψηφία βρίσκουμε την παράσταση 11101101. Στη συνέχεια, προσθέτοντας το 1, βρίσκουμε την παράσταση συμπληρώματος ως προς 2 που είναι η 11101110. Αξίζει να παρατηρήσει κανείς, ότι και στους τρεις τρόπους παράστασης των αρνητικών αριθμών που αναφέρθηκαν, το αριστερότερο ψηφίο του αριθμού δείχνει αν ο αριθμός είναι θετικός ή αρνητικός. Έτσι, αν το ψηφίο είναι ?1?, μπορεί κανείς να συμπεράνει ότι ο αριθμός είναι αρνητικός. 1.8 Παράσταση πραγματικών αριθμών Για να παραστήσουμε μη ακέραιους αριθμούς (αριθμούς με κλασματικό μέρος) μπορούμε να χρησιμοποιήσουμε μια από δύο τεχνικές: την παράσταση σταθερής υποδιαστολής και την παράσταση κινητής υποδιαστολής. 1.8.1 Παράσταση σταθερής υποδιαστολής Στην παράσταση σταθερής υποδιαστολής αφιερώνουμε ένα τμήμα της λέξης του υπολογιστή για την παράσταση του δεκαδικού μέρους του αριθμού. Η τεχνική αυτή προφανώς μειώνει το μέγεθος των αριθμών που μπορούν να παρασταθούν. Παράδειγμα: Να παρασταθεί ο δυαδικός αριθμός (1001,11) σε υπολογιστή με μήκος λέξης οκτώ δυαδικά ψηφία στον οποίο τα τρία (δεξιότερα) ψηφία αφιερώνονται στην παράσταση του κλασματικού μέρους. Απάντηση: Αφού τα τρία δεξιότερα δυαδικά ψηφία είναι αφιερωμένα στο κλασματικό μέρος, η μορ΄φη που θα έχει η λέξη του υπολογιστή είναι η ακόλουθη: ακέραιο μέρος κλασματικό μέρος b7 b6 b5 b4 b3 b2 b1 bo Τα ψηφία b7-b3 αφιερώνονται στο ακέραιο μέρος ενώ τα ψηφία b2-b0 στο δεκαδικό μέρος. Η θέση της υποδιαστολής είναι μεταξύ των ψηφίων b3 και b2. Τοποθετούμε τον αριθμό «γύρω» από την υποδιαστολή και συμπληρώνουμε με μηδενικά στα αριστερά και δεξιά του. ακέραιο μέρος κλασματικό μέρος 1 0 0 1 1 1 b7 b6 b5 b4 b3 b2 b1 bo ακέραιο μέρος κλασματικό μέρος 0 1 0 0 1 1 1 0 b7 b6 b5 b4 b3 b2 b1 bo Έτσι έχουμε την τελική μορφή του αριθμού 01001110. Αξίζει να σημειωθεί ότι αν είχαμε υιοθετήσει διαφορετική σύμβαση σχετικά με το πλήθος των ψηφίων που θα αφιερώναμε στο κλασματικό μέρος, θα είχαμε διαφορετικό αποτέλεσμα. Έτσι, αν είχαμε συμφωνήσει ότι θέλουμε να αφιερώσουμε δύο ψηφία για το κλασματικό μέρος, η μορφή του ίδιου αριθμού θα ήταν: 00100111, όπως φαίνεται στο ακόλουθο σχήμα. ακέραιο μέρος κλασματικό μέρος 0 0 1 0 0 1 1 1 b7 b6 b5 b4 b3 b2 b1 bo 1.8.2 Παράσταση κινητής υποδιαστολής Στην παράσταση κινητής υποδιαστολής χρησιμοποιούμε την εκθετική ή επιστημονική μορφή των αριθμών (exponential representation). Η μορφή αυτή χρησιμοποιείται σε όλους τους επιστημονικούς τομείς για να εκφράσουμε πιο σύντομα πολύ μεγάλες ή πολύ μικρές αριθμητικές ποσότητες. Για παράδειγμα, η μάζα ενός ηλεκτρονίου, που είναι 0,000000000000000000000000000009107 kgr, μπορεί να εκφραστεί στην εκθετική μορφή σαν 9,107 x 10 ?31 kgr. Επομένως χρειαζόμαστε δύο αριθμούς (9,107 και ?31). Ο πρώτος από τους δύο αριθμούς ονομάζεται μάντισσα (mantissa, m), ενώ ο δεύτερος ονομάζεται εκθέτης (exponent). Μπορούμε να παρατηρήσουμε ότι ενώ η πρώτη μορφή απαιτεί 34 δεκαδικά ψηφία, η δεύτερη απαιτεί μόνο 4+3=7 δεκαδικά ψηφία (?9107? και ?30?). Υπάρχουν περισσότεροι από ένας τρόποι έκφρασης ενός αριθμού στην εκθετική μορφή, αλλάζοντας τη θέση της υποδιαστολής στη μάντισσα. Ο πιο συνηθισμένος από αυτούς είναι η κανονική εκθετική μορφή, στην οποία η μάντισσα m είναι μεταξύ του 0,1 και του 1 (0,1<=m<1). Έτσι, η κανονική μορφή του αριθμού που χρησιμοποιήσαμε ως παράδειγμα είναι 0,9107x1030 . Με τη βοήθεια της κανονικής εκθετικής μορφής μπορούμε να παραστήσουμε στον υπολογιστή αριθμούς με την παράσταση κινητής υποδιαστολής ως εξής. Αποφασίζουμε πόσα δυαδικά ψηφία αφιερώνουμε στη mantissa και πόσα στον εκθέτη και εκφράζουμε τον εκθέτη και τη mantissa στο δυαδικό σύστημα, όπως και στην περίπτωση των ακεραίων αριθμών. Έτσι, αν αποφασίσουμε ότι σε ένα υπολογιστή με μήκος λέξης 2 byte χρησιμοποιούμε 8 δυαδικά ψηφία για τη mantissa και 8 δυαδικά ψηφία για τον εκθέτη, ο αριθμός του παραδείγματός μας θα είναι ο ?01110101 10011110?. Τα πρώτα οκτώ δυαδικά ψηφία αποτελούν τη δυαδική αναπαράσταση της mantissa, ενώ τα επόμενα οκτώ τη δυαδική αναπαράσταση του εκθέτη. Παράδειγμα: Να παρασταθεί ο αριθμός (1.048.576)10 σε υπολογιστή με μήκος λέξης 8 δυαδικά ψηφία. Από τα ψηφία αυτά τα 3 θα αφορούν τη mantissa και τα 5 τον εκθέτη. Η mantissa χρησιμοποιείται για την παράσταση μόνο θετικών αριθμών, επομένως δε χρειάζεται να αφιερώσουμε το υψηλής τάξης δυαδικό ψηφίο για το πρόσημο. Ακόμη, μπορούμε να παραστήσουμε μόνο θετικούς εκθέτες, επομένως και για τον εκθέτη δε χρειάζεται να αφιερώσουμε ψηφίο για το πρόσημο. Απάντηση: Η διαμόρφωση της λέξης του υπολογιστή με βάση τις προδιαγραφές που μας δίνονται φαίνεται στο ακόλουθο σχήμα. mantissa εκθέτης b7 b6 b5 b4 b3 b2 b1 b0 Εκφράζουμε τον δοθέντα αριθμό σε δύναμη του 2: (1.048.576)10 = (100.000.000.000.000.000.000)2 = 12 20 = 0.10002 21. Η τελευταία αναπαράσταση είναι η κανονική μορφή, για την αποθήκευση της οποίας χρειάζεται να αποθηκεύσουμε το τμήμα μετά την υποδιαστολή. Επομένως, με βάση τις προιαγραφές που έχουμε, ο αριθμός γίνεται: mantissa εκθέτης 1 0 0 1 0 1 0 0 b7 b6 b5 b4 b3 b2 b1 b0 Είναι σαφές ότι αν μας ζητούσαν να προβλέψουμε την παράσταση αρνητικών ή και πολύ μικρών αριθμών, θα χρειαζόταν να προβλέψουμε ένα δυαδικό ψηφίο από τηmantissa ή και τον εκθέτη για την παράσταση του αρνητικού προσήμου. Στην περίπτωση αυτή, θα μας έδιναν και οδηγίες σχετικά με το πώς θα παραστούσαμε τους αρνητικούς αριθμούς (με παράσταση μέτρου, συμπληρώματος ως προς 1 ή ως προς 2). 1.9 Αναπαράσταση χαρακτήρων Για να αναπαραστήσουμε χαρακτήρες και σύμβολα αντιστοιχίζουμε σε κάθε χαρακτήρα ή σύμβολο ένα συγκεκριμένο συνδυασμό δυαδικών ψηφίων. Η αντιστοίχιση αυτή ονομάζεται κωδικοποίηση χαρακτήρων. Προκειμένου να μπορούμε να μεταφέρουμε ένα κείμενο γραμμένο σε έναν υπολογιστή Α σε έναν άλλο υπολογιστή Β, πρέπει οι δύο υπολογιστές να ακολουθούν την ίδια κωδικοποίηση χαρακτήρων. Για τη διασφάλιση της συμβατότητας αυτής έχουν αναπτυχθεί κάποιες προδιαγραφές, που ονομάζονται πρότυπα κωδικοποίησης. Τα πιο γνωστά από τα πρότυπα αυτά είναι τα ASCII, EBCDIC και Unicode. Το πρότυπο ASCII (American Standard Code for Information Interchange, Αμερικανικός Τυποποιημένος Κώδικας για την Ανταλλαγή Πληροφοριών) αναπτύχθηκε από το Αμερικανικό Εθνικό Ινστιτούτο Τυποποίησης (American National Standards Institute, ANSI). Το πρότυπο EBCDIC (Extended Binary Coded Decimal Interchange Code, Επαυξημένος Δυαδικός Δεκαδικός Κώδικας Ανταλλαγής) αναπτύχθηκε από την εταιρία IBM και χρησιμοποιείται στα συστήματά της. Στα πρότυπα ASCII και EBCDIC χρησιμοποιούνται 8 δυαδικά ψηφία (1 byte) για την αναπαράσταση των χαρακτήρων. Έτσι, μπορούμε χρησιμοποιώντας τους 28=256 διαφορετικούς συνδυασμούς δυαδικών ψηφίων, να αναπαραστήσουμε 256 διαφορετικούς κωδικούς χαρακτήρων. Μπορούμε λοιπόν να κωδικοποιήσουμε τα γράμματα (κεφαλαία, μικρά και τονισμένα), σημεία στίξης, ψηφία (0 ως 9) και άλλα σύμβολα. Ακόμη, υπάρχουν αρκετοί κωδικοί ελεύθεροι, οι οποίοι έχουν χρησιμοποιηθεί για την προσθήκη εθνικών αλφαβήτων και άλλων συμβόλων. Για παράδειγμα, ο Ελληνικός Οργανισμός Τυποποίησης (ΕΛΟΤ) έχει προσθέσει στον ελεύθερο χώρο του κώδικα ASCII το πρότυπο ΕΛΟΤ 928, κωδικοποιώντας τους χαρακτήρες του ελληνικού αλφαβήτου. Το πρότυπο Unicode έχει αναπτυχθεί από το Διεθνή Οργανισμό Τυποποίησης (International Standard Organization, ISO) και βασίζεται στο ASCII. Η ανάγκη για το πρότυπο αυτό δημιουργήθηκε από την παγκοσμιοποίηση των εφαρμογών της πληροφορικής και την αύξηση της ανάγκης για επικοινωνία και ανταλλαγή δεδομένων σε περισσότερες από μία γλώσσες. Στο πρότυπο Unicode για την κωδικοποίηση των χαρακτήρων χρησιμοποιούνται 16 δυαδικά ψηφία. Επομένως, μπορούν να αναπαρασταθούν 216=65.536 χαρακτήρες. Έτσι, στο πρότυπο Unicode έχουν συμπεριληφθεί χαρακτήρες πολλών αλφαβήτων (λατινικοί, ελληνικοί, κυριλλικοί, αραβικοί) με τη συμμετοχή εθνικών και διεθνών οργανισμών τυποποίησης. Συμπεριλαμβάνονται ακόμα ιδεογράμματα γλωσσών της ?πω Ανατολής και πολλά σύμβολα, ενώ παραμένουν γύρω στους 6.000 κωδικούς διαθέσιμοι για μελλοντική χρήση. Έτσι, χρησιμοποιώντας τον κώδικα Unicode μπορεί κανείς να δουλεύει με ελληνικούς χαρακτήρες, να στέλνει την εργασία του και αυτή να είναι άμεσα αναγνώσιμη