Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ 1
Πράξεις με μπιτ 2
Αριθμητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός, Διαίρεση Ο πολλαπλασιασμός και η διαίρεση στο επίπεδο του λογισμικού βασίζονται στην πρόσθεση και την αφαίρεση αντίστοιχα 3
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Πλήθος μονάδων Αποτέλεσμα Καμία 0 Μία 1 Κρατούμενο Δύο 0 1 Τρεις 1 1 Κανόνας πρόσθεσης ακεραίων σε μορφή συμπληρώματος ως προς δύο Προσθέτουμε δύο μπιτ και μεταφέρουμε το κρατούμενο στην επόμενη στήλη. Αν υπάρχει κάποιο τελικό κρατούμενο μετά την πρόσθεση στην πιο αριστερή στήλη, το αγνοούμε. 4
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε δύο αριθμούς σε αναπαράσταση συμπληρώματος ως προς δύο, με μήκος μπιτ 8 : (+17) + (+22) (+39) 5
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε δύο αριθμούς σε αναπαράσταση συμπληρώματος ως προς δύο, με μήκος μπιτ 8: (+17) + (+22) (+39) Λύση Κρατούμενο 1 0 0 0 1 0 0 0 1 + 0 0 0 1 0 1 1 0 Αποτέλεσμα 0 0 1 0 0 1 1 1 Το αποτέλεσμα είναι 39 στο δεκαδικό σύστημα. 6
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε το 24 και το 17. Και οι δύο αριθμοί είναι σε μορφή συμπληρώματος ως προς δύο, με μήκος μπιτ 8. (+24) + ( 17) (+7) 7
Πως μετατρέπουμε έναν αρνητικό αριθμό σε δυαδική μορφή σε μορφή συμπληρώματος ως προς 2; 8
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε το 24 και το 17. Και οι δύο αριθμοί είναι σε μορφή συμπληρώματος ως προς δύο, με μήκος μπιτ 8 (+24) + ( 17) (+7) Λύση Κρατούμενο 1 1 1 1 1 0 0 0 1 1 0 0 0 + 1 1 1 0 1 1 1 1 Αποτέλεσμα 0 0 0 0 0 1 1 1 Προσέξτε ότι το αποτέλεσμα είναι +7 και ότι το τελευταίο κρατούμενο (από την πιο αριστερή στήλη) αγνοείται 9
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε το 35 και το 20. Και οι δύο αριθμοί είναι σε μορφή συμπληρώματος ως προς δύο. ( 35) + (+20) ( 15) 10
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε το 35 και το 20. Και οι δύο αριθμοί είναι σε μορφή συμπληρώματος ως προς δύο. ( 35) + (+20) ( 15) Λύση Κρατούμενο 1 1 1 1 1 0 1 1 1 0 1 + 0 0 0 1 0 1 0 0 Αποτέλεσμα 1 1 1 1 0 0 0 1 Προσέξτε ότι το αποτέλεσμα είναι 15 (το συμπλήρωμα ως προς δύο του αποτελέσματος είναι το 15). 11
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε το 127 και το 3. Και οι δύο αριθμοί είναι σε μορφή συμπληρώματος ως προς δύο, με μήκος μπιτ 8 (+127) + (+3) (+130) 12
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε το 127 και το 3 αφού τους μετατρέψετε σε μορφή συμπληρώματος ως προς δύο, με μήκος μπιτ 8. (+127) + (+3) (+130) 13
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Προσθέστε το 127 και το 3. Και οι δύο αριθμοί είναι σε μορφή συμπληρώματος ως προς δύο, με μήκος μπιτ 8. (+127) + (+3) (+130) Λύση Κρατούμενο 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 + 0 0 0 0 0 0 1 1 Αποτέλεσμα 1 0 0 0 0 0 1 0 14
Πρόσθεση στη μορφή συμπληρώματος ως προς δύο Εδώ αμέσως παρατηρούμε ένα σφάλμα. Το πιο αριστερό μπιτ του αποτελέσματος είναι το 1, πράγμα που σημαίνει ότι ο αριθμός είναι αρνητικός (εμείς περιμέναμε θετικό αριθμό). Ποιος είναι αυτός ο αριθμός; 10000010 => 01111110 Το συμπλήρωμα ως προς δύο είναι το 126. Άρα ο αριθμός είναι το 126 αντί για το 130. Το αποτέλεσμα αυτό οφείλεται στην υπερχείλιση 15
Υπερχείλιση Υπερχείλιση (overflow) ονομάζεται το σφάλμα που παρουσιάζεται όταν προσπαθούμε να αποθηκεύσουμε έναν αριθμό ο οποίος δεν είναι στο διάστημα τιμών που ορίζεται από τη δέσμευση Διάστημα τιμών αριθμών στην αναπαράσταση συμπληρώματος ως προς δύο: 2 N-1 0 (2 N-1 1) 16
Υπερχείλιση 127+1=-128!!! 127+3=-126-128-1=127!!! 17
Αφαίρεση στη μορφή συμπληρώματος ως προς δύο Αριθμός 1 Αριθμός 2 Είναι ισοδύναμο με Αριθμός 1 + ( Αριθμός 2) Αφαιρέστε το 62 από το 101 σε μορφή συμπληρώματος ως προς δύο (+101) (+62) (+101) + ( 62) (+39) 18
Αφαίρεση στη μορφή συμπληρώματος ως προς δύο (+101) (+62) (+101) + ( 62) (+39) Λύση Κρατούμενο 1 1 0 1 1 0 0 1 0 1 + 1 1 0 0 0 0 1 0 Αποτέλεσμα 0 0 1 0 0 1 1 1 Το αποτέλεσμα είναι +39. Παρατηρήστε ότι το πιο αριστερό κρατούμενο αγνοείται. 19
Λογικές Πράξεις Η τιμή ενός μπιτ μπορεί να είναι είτε 0 είτε 1. Θεωρούμε ότι το 0 αντιπροσωπεύει τη λογική τιμή ψευδής (false) και το 1 αντιπροσωπεύει τη λογική τιμή αληθής (true) Άρα, ένα μπιτ που έχει αποθηκευτεί στη μνήμη ενός υπολογιστή αντιπροσωπεύει μια λογική τιμή, η οποία είναι είτε αληθής είτε ψευδής 23
Λογικές Πράξεις Η τιμή ενός μπιτ μπορεί να είναι είτε 0 είτε 1. Αν θεωρήσουμε ότι το 0 αντιπροσωπεύει τη λογική τιμή ψευδής (false) και το 1 αντιπροσωπεύει τη λογική τιμή αληθής (true) τότε μπορούμε για τον χειρισμό των δεδομένων να εφαρμόζουμε τις πράξεις που ορίζονται στην Άλγεβρα Boole Η Άλγεβρα Boole κατατάσσεται σ ένα ειδικό πεδίο των μαθηματικών που ονομάζεται Λογική) 24
Λογικές Πράξεις 25
Πίνακες Αλήθειας 26
Μονομελής Τελεστής 27
Ο Διμελής Τελεστής ΑΝD 28
Ο Διμελής Τελεστής OR 29
Ο Διμελής Τελεστής XOR 30
Εφαρμογές Οι τρεις λογικές διμελείς πράξεις χρησιμοποιούνται για την τροποποίηση σχημάτων μπιτ. Μπορούν να ενεργοποιούν, να απενεργοποιούν, ή να αντιστρέφουν συγκεκριμένα μπιτ Το σχήμα μπιτ προς τροποποίηση έρχεται Σε σύζευξη (AND), Σε διάζευξη (OR), ή Σε αποκλειστική διάζευξη (XOR) με το δεύτερο σχήμα μπιτ, το οποίο ονομάζεται μάσκα 31
Εφαρμογές - Μάσκες Οι μάσκες χρησιμοποιούνται για την τροποποίηση άλλων σχημάτων μπιτ 32
Εφαρμογή του τελεστή ΑΝD: Απενεργοποίηση συγκεκριμένων μπιτ Μια εφαρμογή του τελεστή AND είναι η απενεργοποίηση συγκεκριμένων μπιτ ενός σχήματος δηλ. η επιβολή της τιμής 0 σε αυτά Για να γίνει αυτό χρησιμοποιείται μια μάσκα απενεργοποίησης με το ίδιο πλήθος μπιτ, και με τιμή 0 στα μπιτ που αντιστοιχούν σε αυτά που θέλουμε να απενεργοποιήσουμε. 33
Κανόνες κατασκευής μάσκας απενεργοποίησης συγκεκριμένων μπιτ Για να απενεργοποιηθεί ένα μπιτ στο σχήμα προορισμού, το αντίστοιχο μπιτ στη μάσκα πρέπει να είναι 0. Για να μείνει ένα μπιτ στο σχήμα προορισμού ως έχει, το αντίστοιχο μπιτ της μάσκας πρέπει να είναι 1. 34
Παράδειγμα Χρησιμοποιείστε μια μάσκα για να απενεργοποιήσετε τα 5 αριστερά μπιτ του σχήματος 10100110 35
Παράδειγμα Χρησιμοποιείστε μια μάσκα για να απενεργοποιήσετε τα 5 αριστερά μπιτ του σχήματος 10100110 Λύση: η μάσκα είναι 00000111 36
Εφαρμογή του τελεστή ΟR: Eνεργοποίηση συγκεκριμένων μπιτ Μια εφαρμογή του τελεστή OR είναι η ενεργοποίηση συγκεκριμένων μπιτ ενός σχήματος δηλ. η επιβολή της τιμής 1 σε αυτά Για να γίνει αυτό χρησιμοποιείται μια μάσκα ενεργοποίησης με το ίδιο πλήθος μπιτ και με τιμή 1 στα μπιτ που αντιστοιχούν σε αυτά που θέλουμε να ενεργοποιήσουμε 37
Κανόνες κατασκευής μάσκας ενεργοποίησης συγκεκριμένων μπιτ Για να ενεργοποιηθεί ένα μπιτ στο σχήμα προορισμού, το αντίστοιχο μπιτ στη μάσκα πρέπει να είναι 1. Για να μείνει ένα μπιτ στο σχήμα προορισμού ως έχει, το αντίστοιχο μπιτ της μάσκας πρέπει να είναι 0. 38
Παράδειγμα Χρησιμοποιείστε μια μάσκα για να ενεργοποιήσετε τα 5 αριστερά μπιτ του σχήματος 10100110 39
Παράδειγμα Χρησιμοποιείστε μια μάσκα για να ενεργοποιήσετε τα 5 αριστερά μπιτ του σχήματος 10100110 Λύση: η μάσκα είναι 11111000 40
Εφαρμογή του τελεστή XΟR: Aντιστροφή συγκεκριμένων μπιτ Μια εφαρμογή του τελεστή ΧΟR είναι η αντιστροφή συγκεκριμένων μπιτ ενός σχήματος δηλ. η αλλαγή της τιμής από 0 σε 1 και το αντίστροφο Για να γίνει αυτό χρησιμοποιείται μια μάσκα αντιστροφής με το ίδιο πλήθος μπιτ και με τιμή 1 στα μπιτ που αντιστοιχούν σε αυτά που θέλουμε να αντιστρέψουμε. 41
Πίνακες Αλήθειας 42
Κανόνες κατασκευής μάσκας αντιστροφής συγκεκριμένων μπιτ Για να αντιστραφεί ένα μπιτ στο σχήμα προορισμού, το αντίστοιχο μπιτ στη μάσκα πρέπει να είναι 1. Για να μείνει ένα μπιτ ως έχει στο σχήμα προορισμού, το αντίστοιχο μπιτ της μάσκας πρέπει να είναι 0. 43
Παράδειγμα Χρησιμοποιείστε μια μάσκα για να αντιστρέψετε τα 5 αριστερά μπιτ του σχήματος 10100110 44
Παράδειγμα Χρησιμοποιείστε μια μάσκα για να αντιστρέψετε τα 5 αριστερά μπιτ του σχήματος 10100110 Λύση Η μάσκα είναι 11111000 45