Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1 Ενότητα 2: Αναπαράσταση Δεδομένων Δρ. Φραγκούλης Γεώργιος Τμήμα Ηλεκτρολογίας
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Να κατανοήσει ο φοιτητής την αναπαράσταση δεδομένων στην επιστήμη της πληροφορικής. Ειδικότερα, μελετώνται τα εξής: αναπαράσταση κειμένου και αριθμών, τύποι δεδομένων, συστήματα αρίθμησης, μετατροπή αριθμών από ένα σύστημα σε ένα άλλο, αναπαράσταση εικόνας, ήχου και βίντεο. 4
Περιεχόμενα ενότητας Αναπαράσταση κειμένου και αριθμών. Τύποι δεδομένων. Συστήματα αρίθμησης. Μετατροπή αριθμών από ένα σύστημα σε ένα άλλο. Αναπαράσταση εικόνας, ήχου και βίντεο. 5
Υπολογιστικά συστήματα: Στρώματα Διάγραμμα 1: Υπολογιστικά συστήματα (Διδάσκων, 2015). 6
Τύποι δεδομένων (1) Τα δεδομένα μπορούν να είναι πολλών τύπων: Κείμενο. Αριθμοί. Εικόνες. Ήχος. Βίντεο. Ζητείται μία μέθοδος αναπαράστασης για όλους αυτούς τους τύπους δεδομένων. 7
Bit (1) Ένα ηλεκτρονικό κύκλωμα στο εσωτερικό του Η/Υ μπορεί να βρίσκεται σε μία από δύο καταστάσεις: ανοιχτό ή κλειστό 0 ή 1 Η στοιχειώδης μονάδα δεδομένων του Η/Υ: το μπιτ (= bit = binary digit = δυαδικό ψηφίο) 8
Bit (2) Ένα bit μπορεί να αναπαραστήσει οτιδήποτε μπορεί να παίρνει μόνο δύο διαφορετικές τιμές, π.χ.: το πρόσημο ενός αριθμού: θετικό ή αρνητικό. τον τύπο ενός γράμματος: κεφαλαίο ή πεζό. τον τονισμό ενός φωνήεντος: άτονο ή τονισμένο. 9
Bit (3) Γενικότερα: Ομαδοποιούμε ένα οποιοδήποτε πλήθος από bit και χειριζόμαστε την ακολουθία τους ως ομάδα. Η ομάδα αυτή λέγεται σχήμα μπιτ (= bit pattern = ακολουθία δυαδικών ψηφίων). Π.χ. μια ομάδα 3 bit μπορεί να αναπαραστήσει τις μέρες της εβδομάδος: 000 001 010 011 100 101 Δευτέρα Τρίτη Τετάρτη Πέμπτη Παρ/υή Σάββατο 110 Κυριακή Μια ομάδα από 8 μπιτ λέγεται μπάιτ (8 bits = 1 byte). 10
Αναπαράσταση κειμένου (1) Βήμα 1. Διαιρούμε το κείμενο σε σύμβολα. (σύμβολο= γράμμα, ψηφίο, σημείο στίξης, κενό, κλπ.) Βήμα 2. Αναπαριστούμε τα διαφορετικά σύμβολα με διαφορετικά σχήματα μπιτ του ίδιου μήκους. Π.χ.: 010110 Α 101100 α 110010 ψηφίο 3 000111 τελεία 101010 κενό διάστημα 11
Αναπαράσταση κειμένου (2) Βήμα 3. Συνενώνουμε τα σχήματα bit των συμβόλων, για να πάρουμε ένα σχήμα bit για το κείμενο. Π.χ., για το κείμενο «Η ΠΑΟΚΑΡΑ δεν παίζεται φέτος.»: Διάγραμμα 2: Αναπαράσταση κειμένου 2 (Διδάσκων, 2015). 12
Αναπαράσταση κειμένου (3) Ερώτηση: Πόσο μεγάλο το κοινό μήκος των σχημάτων bit; Πίνακας 1: Αναπαράσταση κειμένου (Διδάσκων, 2015). 13
Αναπαράσταση κειμένου (4) Όλα τα σχήματα bit για μήκη από 1 έως 5. Διάγραμμα 3: Αναπαράσταση κειμένου 4 (Διδάσκων, 2015). 14
Αναπαράσταση κειμένου: ASCII (1) ASCII American Standard Code for Information Interchange (Αμερικανικό Πρότυπο Κώδικα για την Ανταλλαγή Πληροφοριών) Κώδικας με σχήματα bit μήκους 7. Άρα πόσα σύμβολα αναπαριστά; 128 15
Αναπαράσταση κειμένου: ASCII (2) Η αναπαράσταση κατά τον κώδικα ASCII. Ερώτηση: Από ποιο σχήμα bit αναπαρίσταται το J ; Απάντηση: στήλη 100 γραμμή 1010 άρα: 1001010 Εικόνα 1: Αναπαράσταση κειμένου ASCII (Ανακτήθηκε, 10 μαρτίου 2015). 16
Αναπαράσταση κειμένου: ASCII (3) Η αναπαράσταση κατά τον κώδικα ASCII. Ερώτηση: Ποιο σύμβολο αναπαρίσταται από το 1100101; Απάντηση: στήλη 110 γραμμή 0101 άρα: e Εικόνα 2: Αναπαράσταση κειμένου ASCII (Ανακτήθηκε, 10 μαρτίου 2015). 17
Αναπαράσταση κειμένου: διευρυμένος ASCII Κώδικας που δημιουργήθηκε για να εξυπηρετηθούν πρόσθετες ανάγκες: γραφικά (π.χ. σύμβολα για γραμμές) άλλες γλώσσες (π.χ. σύμβολα για γαλλικά, γερμανικά, ελληνικά, ), κ.ά. Έχει σχήματα bit μήκους 8. Άρα πόσα σύμβολα αναπαριστά; 256 Αποτελεί υπερσύνολο του ASCII. (Δηλ. τα πρώτα 128 σύμβολά του ταυτίζονται με αυτά του απλού ASCII.) 18
Αναπαράσταση κειμένου: Unicode Δημιουργήθηκε για την εξυπηρέτηση των πρόσθετων αναγκών με έναν μοναδικό κώδικα. Έχει σχήματα bit μήκους 16. Άρα πόσα σύμβολα αναπαριστά; 65536 Αποτελεί επίσης υπερσύνολο του ASCII. (Δηλ. τα πρώτα 128 σύμβολά του ταυτίζονται με αυτά του απλού ASCII.) 19
Αναπαράσταση κειμένου: άλλοι κώδικες EBCDIC (από την ΙΒΜ). BAUDOT (για τα TELEX). ελληνικός ASCII CP437 (για λειτουργικό DOS). IBM 851 (για PC τύπου PS 2). IBM 869 (για λειτουργικό 0S/2 v.2). ΕΛΟΤ 928 (για λειτουργικό MS-Windows). 20
Τύποι δεδομένων (2) Έχουμε συζητήσει την αναπαράσταση των εξής τύπων δεδομένων : Κείμενο Αριθμοί Εικόνες Ήχος Βίντεο Πριν εξηγήσουμε την αναπαράσταση και των αριθμών, ας δούμε πώς συντομεύουμε μεγάλα σχήματα bit 21
Πολλά bit Ο χειρισμός μεγάλων σχημάτων bit, π.χ., 01100101101110010101001001100100110101 είναι δύσκολος για τον άνθρωπο. Για ευκολία, χρησιμοποιούμε συστήματα συντομεύσεων. Δύο τέτοια είναι: ο οκταδικός συμβολισμός. ο δεκαεξαδικός συμβολισμός. 22
Οκταδικός συμβολισμός 1. Διαιρούμε το σχήμα bit σε τριάδες. 2. Αντικαθιστούμε τις τριάδες με ψηφία 0 7 ως εξής: 000 001 010 011 100 101 110 111 0 1 2 3 4 5 6 7 Π.χ.: 011001011011100101010010011001001 011-001-011-011-100-101-010-010-011-001-001 3 1 3 3 4 5 2 2 3 1 1 23
Δεκαεξαδικός συμβολισμός 1. Διαιρούμε το σχήμα bit σε τετράδες. 2. Αντικαθιστούμε τις τετράδες με τα 0 9, Α F ως εξής: 0000 0001 0010 0011 0100 0101 0110 0111 0 1 2 3 4 5 6 7 1000 1001 1010 1011 1100 1101 1110 1111 8 9 Α Β C D E F Π.χ.: 011011101011100101010010111110101 0110 1110 1011 1001 0101 0010 1111 1010 1000 6 Ε Β 9 5 2 F Α 8 24
Αναπαράσταση αριθμών Είδη αριθμών: φυσικοί: 0, 1, 2, 3,, 239,, 2332451, ακέραιοι:, -239,, -2, -1, 0, 1, 2,, 239, πραγματικοί: 0, 1, -1, 2.3, 2, - 3, π, -2e, 25
Συστήματα Αρίθμησης (1) Ένα σύστημα αρίθμησης είναι ένας τρόπος να αναπαραστήσουμε αριθμητικές ποσότητες και κάποιες πράξεις μεταξύ τους. Κάθε σύστημα περιλαμβάνει : Μία βάση(radix). Η βάση του σ.α. καθορίζει το πλήθος των διαφορετικών συμβόλων που επιτρέπονται στο σύστημα. Ένα σύνολο επιτρεπτών συμβόλων. Στο δεκαδικό σύστημα αυτοί είναι {0,1,2,3,4,5,6,7,8,9}. Ένα σύστημα θέσης το οποίο να καθορίζει την σημαντικότητα κάθε ψηφίου. Το πρώτο ψηφίο στα αριστερά λέγεται περισσότερο σημαντικό ψηφίο, ενώ το πρώτο από δεξιά λιγότερο σημαντικό ψηφίο. 26
Δεκαδικό σύστημα Το δεκαδικό σύστημα : 10 σύμβολα για κάθε ψηφίο d Παράσταση Αριθμών d {0,1,2,3,4,5,6,7,8,9} d k d k-1 d k-2 d 1 d 0 όπου d k το περισσότερο σημαντικό ψηφίο ενώ d 0 το λιγότερο σημαντικό. Αποτίμηση αξίας αριθμού Value (d k d k-1 d 1 d 0 ) 10 = Σ i =0 k D i *10 i Παράδειγμα: 478 10 = 4 * 10 2 + 7*10 1 +8*10 0 27
Γενικεύοντας Γενικεύοντας: To ν-δικό σύστημα αρίθμησης - βάση n - υπάρχουν n σύμβολα - Οι αριθμοί παριστάνονται ως μια ακολουθία των n συμβόλων - Αποτιμώνται ως ακολούθως d k d k-1 d k-2 d 1 d 0 όπου d k το περισσότερο σημαντικό ψηφίο ενώ d 0 το λιγότερο σημαντικό, d ε { S a, S b, S c, S d,.} Value (d k d k-1 d 1 d 0 ) Base = Σ i =0 k D i *Base i Θεωρητικά υπάρχουν άπειρα συστήματα αρίθμησης, στην πράξη χρησιμοποιούμε τα κατα περίπτωση αναγκαία 28
Το οκταδικό σύστημα αρίθμησης Σύμβολα d ε { 0,1,2,3,4,5,6,7} Αποτίμηση Value (d k d k-1 d 1 d 0 ) 8 = Σ i =0 k D i *8 i Παραδείγματα 23 8 = 2*8 1 +3*8 0 = 16 10 +3 10 = 19 10 4104 8 = 4*8 3 +1*8 2 +0*8 1 +4*8 0 = 4*512+1*64+0*8+4*1 = 2116 10 29
Σύμβολα Το δεκαεξαδικό σύστημα αρίθμησης d ε { 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} Αποτίμηση Value (d k d k-1 d 1 d 0 ) 16 = Σ i =0 k D i *16 i Παραδείγματα 23 16 = 2*16 1 +3*16 0 = 32 10 +3 10 = 35 10 4104 16 = 4*16 3 +1*16 2 +0*16 1 +4*16 0 = 4*4096+1*256+0*16+4*1 = 16644 10 30
Το δυαδικό σύστημα αρίθμησης Σύμβολα d ε { 0,1} Αποτίμηση k Value (d k d k-1 d 1 d 0 ) 2 = Σ i =0 D i *2 i Παραδείγματα 10 2 = 1*2 1 +0*2 0 = 2 10 1010 2 = 1*2 3 +0*2 2 +1*2 1 +0*2 0 =8+2= 10 10 11101 2 = 1*2 4 +1*2 3 +1*2 2 +0*2 1 +1*2 0 =.= 29 10 31
Συστήματα αρίθμησης (2) Πίνακας 2: Συστήματα αρίθμησης (Διδάσκων, 2015). 32
Δύναμη αναπαράστασης με Κ bits Με 3 bits έχουμε 8 Με 3 bits έχουμε 8 μοναδικά σχήματα μοναδικά σχήματα (Patterns) 000 0000,1000 001 0001,1001 010 0010,1010 Γενικά με Κ Bits 011 0011,1011 έχουμε 2k 101 0101,1101 μοναδικά 110 0110,1110 σχήματα 111 0111,1111 2*2*2=23=8 2*2*2*2=16 33
Παράσταση δεδομένων Bit (binary digit): H φυσική αναπαράσταση της ελάχιστης πληροφορίας με χρήση δυο καταστάσεων - χρειάζονται πολλά bits για να παρασταθούν χρήσιμοι στον άνθρωπο αριθμοί κλ.π δεδομένα. - Προκύπτει η ανάγκη συμβασεων για την παράσταση χαρακτήρων (EBCDIC, ASCII, Unicode) - 1 byte = 8 bits - Ο αριθμός των bit που σε επίπεδο υλικού παριστάνουν έναν αριθμό λέγεται λέξη (word) και χαρακτηρίζει τους Η/Υ (8 bit, 16-bit, 32-bit, 64-bit, 128-bit) Σύνθετες δομές δεδομένων βα σίζονται πάνω σε αυτή τη στοιχεώση παράσταση. 34
Μετατροπή αριθμών από ένα αριθμητικό σύστημα σε άλλο Η μετατροπή ενός αριθμού από ένα αριθμητικό σύστημα με βάση β προς το δεκαδικό σύστημα είναι πολύ απλή. Διάγραμμα 4: Μετατροπή αριθμών από ένα αριθμητικό σύστημα σε άλλο (Διδάσκων, 2015). 35
Μετατροπή δυαδικού σε δεκαδικό Ο δυαδικός αριθμός (110.11)2 σε δεκαδικό: Binary 1 1 0 1 1 Place Values 2 2 2 1 2 0 2-1 2-2 Partial Results 4 + 2 + 0 + 0,5 + 0,25 Decimal: 6,75 36
Δεκαεξαδικός σε δεκαδικό (1A.23)16 σε δεκαδικό: Hexadecimal 1 A 2 3 Place Values 16 1 16 0 16-1 16-2 Partial Result 16 + 10 + 0,125 + 0,012 Decimal: 26,137 37
Οκταδικό σε δεκαδικό (23.17)8 σε δεκαδικό: Octal 2 3 1 7 Place Values 8 1 8 0 8-1 8-2 Partial Result 16 + 3 + 0,125 + 0,109 Decimal: 19,234 38
Μετατροπή δεκαδικού σε άλλα συστήματα αρίθμησης (1) Πιο πολύπλοκη είναι η διαδικασία μετατροπής ενός αριθμού από το δεκαδικό σύστημα σε ένα άλλο σύστημα αρίθμησης με βάση β. Η μετατροπή γίνεται χωριστά για το ακέραιο και χωριστά για το κλασματικό μέρος. Για να μετατρέψουμε το ακέραιο μέρος του αριθμού Α σε βάση β, κάνουμε διαδοχικές διαιρέσεις του ακεραίου μέρους του Α με τον αριθμό β. Η διαδικασία μετατροπής είναι η εξής: (1) Διαιρούμε το δεκαδικό αριθμό με το β, και παίρνουμε το πηλίκο Π και το υπόλοιπο Υ. Το υπόλοιπο είναι μία τιμή από 0 έως β-1 και αποτελεί το δεξιότερο ψηφίο του αριθμού. (2) Διαιρούμε το πηλίκο Π πάλι με το β, και παίρνουμε ένα νέο πηλίκο Π και υπόλοιπο Υ. Γράφουμε το υπόλοιπο (που πάλι είναι μία τιμή από 0 έως β-1) στα αριστερά του αριθμού. (3) Επαναλαμβάνουμε το βήμα (2) μέχρι το πηλίκο Π να γίνει 0. 39
Μετατροπή δεκαδικού σε άλλα συστήματα αρίθμησης (2) Ας δούμε πως μετατρέπεται ο αριθμός A=53 (10) στο δυαδικό σύστημα (β=2): 53 Διαιρούμε το 53 με το 2, άρα 26 1 1 26 Διαιρούμε το 26 με το 2, άρα 13 0 01 13 Διαιρούμε το 13 με το 2, άρα 6 0 101 6 Διαιρούμε το 6 με το 2, άρα 3 0 0101 3 Διαιρούμε το 3 με το 2, άρα 1 1 10101 1 Διαιρούμε το 1 με το 2, άρα 0 1 110101 0 53 (10) = 110101 (2) Ας δούμε και την μετατροπή του αριθμού 312 στο οκταδικό σύστημα: 312 Διαιρούμε το 312 με το 8, άρα 39 0 0 313 Διαιρούμε το 39 με το 8, άρα 4 7 70 4 Διαιρούμε το 4 με το 8, άρα 0 4 470 0 άρα 312 (10) = 470 (8) 40
Μετατροπή κλασματικού μέρους (1) Για να μετατρέψουμε το κλασματικό μέρος ενός αριθμού Α από το δεκαδικό σύστημα σε ένα άλλο σύστημα αρίθμησης με βάση β, κάνουμε διαδοχικούς πολλαπλασιασμούς του κλασματικού μέρους του Α με τη βάση β. Το κλασματικό μέρος στο νέο σύστημα αρίθμησης μπορεί να έχει άπειρα ψηφία, γι αυτό καθορίζουμε από πριν το μέγιστο αριθμό ψηφίων N που θα υπολογίσουμε για το νέο σύστημα αρίθμησης. Η διαδικασία μετατροπής είναι η ακόλουθη: (1) Χρησιμοποιούμε μόνο το κλασματικό μέρος του Α. (2) Πολλαπλασιάζουμε τον Α με τη βάση β. Το αποτέλεσμα έχει ακέραιο μέρος Μ και κλασματικό μέρος Κ. Το Μ (που έχει τιμή από 0 έως β-1) είναι το αριστερότερο ψηφίο το (3) Πολλαπλασιάζουμε το κλασματικό μέρος Κ με το β και παίρνουμε ένα νέο αποτέλεσμα με ακέραιο μέρος Μ (με τιμή από 0 έως β-1) και κλασματικό μέρος Κ. 41
Μετατροπή κλασματικού μέρους (2) (4) Γράφουμε το Μ στα δεξιά του νέου κλασματικού μέρους Υ. (5) Επαναλαμβάνουμε τα βήματα (3), (4) έως ότου το Μ να γίνει 0 ή να έχουμε υπολογίσει N ψηφία του νέου κλασματικού μέρους Υ. 42
Μετατροπή κλασματικού μέρους (3) Ας υπολογίσουμε την τιμή του κλασματικού αριθμού 0,625 (10) στο δυασικό σύστημα: 0,625 0,625*2=1,25 άρα 1 0,25 0,1 0,25 0,25*2=0,5 άρα 0 0,5 0,10 0,5 0,5*2=1 άρα 1 0 0,101 0 άρα 0,625 (10) = 0,101 (2) Επίσης ας υπολογίσουμε την τιμή του κλασματικού αριθμού 0,171875 (10) στο δεκαεξαδικό σύστημα: 0,171875 0,171875*16=2,75 άρα 2 0,75 0,2 0,75 0,75*16=12 άρα 12 0 0,2C 0 άρα 0,171875 (10) = 0,2C (16) 43
Μετατροπή κλασματικού μέρους (4) Ας υπολογίσουμε την τιμή του κλασματικού αριθμού 0,4 (10) στο οκταδικό σύστημα. Καθορίζουμε από πριν ότι θα υπολογίσουμε το πολύ 5 οκταδικά ψηφία: 0,4 0,4*8=3,2 άρα 3 0,2 0,3 0,2 0,2*8=1,6 άρα 1 0,6 0,31 0,6 0,6*8=4,8 άρα 4 0,8 0,314 0,8 0,8*8=6,4 άρα 6 0,4 0,3146 0,4 0,4*8=32 άρα 3 0,2 0,31463 0,2 άρα 0,4 (10) = 0,31463 (8) 44
Αριθμητικές πράξεις στο δυαδικό σύστημα (1) Στο δυαδικό σύστημα οι αριθμητικές πράξεις γίνονται όπως και στο δεκαδικό σύστημα. Προσθέσεις και αφαιρέσεις γίνονται από δεξιά προς τα αριστερά, και χρησιμοποιούμε κρατούμενα ή δανεικά ψηφία αντίστοιχα. Θέλουμε να κάνουμε την αφαίρεση 43-15 αντίστοιχα θα έχουμε: Διάγραμμα 5: Αριθμητικές πράξεις στο δυαδικό Σύστημα (Διδάσκων, 2015). Βλέπουμε στο σχήμα πως το κρατούμενο από κάθε ζέυγος ψηφίων προωθείται στο επόμενο. Το αποτέλεσμα είναι ο δυαδικός αριθμός 111010(2) δηλαδή ο δεκαδικός 58. 45
Αριθμητικές πράξεις στο δυαδικό σύστημα (2) Αν θέλουμε να κάνουμε την αφαίρεση 43-15 αντίστοιχα θα έχουμε: Διάγραμμα 6: Αριθμητικές πράξεις στο δυαδικό (Διδάσκων, 2015). Το αποτέλεσμα είναι ο δυασικός αριθμός 011100(2) δηλαδή ο δεκαδικός 28. Και εδώ βλέπουμε τα δανεικά ψηφία τόυ κάθε ζέυγους που μεταφέρονται στο επομενο επίπεδο. 46
Αριθμητικές πράξεις στο δυαδικό σύστημα (3) Ο πολλαπλασιασμός και η διαίρεση δυαδικών αριθμών γίνονται με διαδοχικές προσθέσεις και αφαιρέσεις αντίστοιχα. Ας δούμε πως πολλαπασιάζουμε τους αριθμούς22(10) = 10110(2) και 11(10) = 1011(2). Για να δημιουργήσουμε κάθε ένα από τα μερικά γινόμενα, πολλπλασιάζουμε τον πάνω αριθμό (τον 10110) με το αντίστοιχο χηφίο του άλλου αριθμού (του 1011) αεργαζόμενοι από τα δεξιά προς τα αριστερά. Κάθε μερικό γινόμενο είναι μετακινημένο κατά μια θέση αριστερά σε σχέση με με το προηγούμενο, ώστε η πρόσθεση όλων μαζί να μας δώσει το σωστό αποτέλεσμα, και έχει συμπληρωθεί από τα δεξιά με μηδενικά. Αυτή η μετακίνηση ονομάζεται ολίσθηση προς τα αριστερά (left shift) και ισοδυναμεί με πολλαπλασιασμό: ολίσθηση προς τα αριστερά κατά μια θέση είναι ισοδύναμη με πολλαπλασιασμό του αριθμού επί 2. Διάγραμμα 7: Αριθμητικές πράξεις στο δυαδικό (Διδάσκων, 2015). 47
Παράσταση αριθμών Η μνήμη κάθε υπολογιστή είναι οργανωμένη σε λέξεις (words), δηλαδή ομάδες των n bits (το n είναι συνήθως ένα πολλαπλάσιο του 8). Το n ονομάζεται μήκος λέξης (word length) του υπολογιστή. Κάθε αριθμός θα καταλαμβάνει χώρο όσο μία λέξη της μνήμης του υπολογιστή. Συμπλήρωμα ως προς 2 (2 s complement) - θετικοί αριθμοί (bit7=0): δεν αλλάζει τίποτε - αρνητικοί αριθμοί (bit7=1): -αναστροφή των ψηφίων bit0-bit6 (αντικατάσταση 0 με 1 και αντίστροφα) - πρόσθεση του 1 στο αποτέλεσμα - ιδιότητα: συμπληρώνοντας 2 φορές ως προς 2, έχουμε παλι τον αρχικό αριθμό. Διάγραμμα 8: Παράσταση αριθμών (Διδάσκων, 2015). 48
Η παράσταση συμπληρώματος ως προς 2 Η αποθήκευση αριθμών σε μορφή συμπληρώματος ως προς δύο γίνεται ως εξής: Ο αριθμός μετατρέπεται στο δυαδικό σύστημα, το πρόσημο αγνοείται Αν το πλήθος των bit είναι μικρότερο από Ν, προστίθενται μηδενικά στα αριστερά του αριθμού ώστε να υπάρχει ένα σύνολο από Ν bit Αν το πρόσημο είναι θετικό, δε χρειάζεται καμία άλλη ενέργεια. Αν το πρόσημο είναι αρνητικό, μένουν ως έχουν όλα τα δεξιότερα 0 και το πρώτο 1. Τα υπόλοιπα bit αντικαθίστανται από το συμπλήρωμά τους. Στην αναπαράσταση συμπληρώματος ως προς δύο, το τελευταίο αριστερά bit καθορίζει το πρόσημο του αριθμού. Αν είναι 0, ο αριθμός είναι θετικός. Αν είναι 1, ο αριθμός είναι αρνητικό. 49
Προσημασμένοι Αριθμοί (1) Για να βρούμε την παράσταση συμπληρώματος ως προς 2 του αριθμού -17 σε ένα υπολογιστή με μήκος λέξης 16 bits : Αρχικά θα γράψουμε τον αντίστοιχο θετικό (17) σε δυαδική μορφή, δηλαδή 0000000000010001. Στη συνέχεια θα αντικαταστήσουμε το 0 με 1 και το 1 με 0 στον αριθμό αυτό, και θα πάρουμε 1111111111101110. Στον αριθμό αυτό θα προσθέσουμε τον 1. Η τελική του παράσταση θα είναι λοιπόν 1111111111101111. Για να βρούμε την τιμή που παριστάνει ο αριθμός 11100110 θα υπολογίσουμε το συμπλήρωμά του ως προς 2 μαζί με το πρόσημο. Αρχικά αντιστρέφουμε όλα τα ψηφία του και παίρνουμε 00011001. Μετά προσθέτουμε τον αριθμό 1, και έχουμε 00011001 + 1 = 00011010. Άρα το μέτρο του αριθμού είναι το 00011010(2) = 26(10) και ο αριθμός είναι ο -26. 50
Προσημασμένοι Αριθμοί (2) Τα βήματα για την ερμηνεία μιας δυαδικής αναπαράστασης συμπληρώματος ως προς δύο στο δεκαδικό σύστημα είναι τα εξής: Αν το τελευταίο αριστερά μπιτ είναι 0 (θετικός αριθμός) τότε μετατρέπουμε ολόκληρο τον αριθμό από το δυαδικό στο δεκαδικό σύστημα. Τοποθετούμε θετικό πρόσημο (+) μπροστά από τον αριθμό. Αν το τελευταίο αριστερά μπιτ είναι 1 (αρνητικός αριθμός) τότε αφήνουμε τα δεξιότερα μπιτ μέχρι το πρώτο 1 (μαζί με αυτό) ως έχουν. Αντικαθιστούμε τα υπόλοιπα μπιτ με το συμπλήρωμά τους. Μετατρέπουμε ολόκληρο τον αριθμό από το δυαδικό στο δεκαδικό Σύστημα Τοποθετούμε μπροστά από τον αριθμό αρνητικό πρόσημο ( ). 51
Πράξεις προσημασμένων ακεραίων αριθμών (1) Η παράσταση του συμπληρώματος ως προς 2 έχει ένα πολύ μεγάλο πλεονέκτημα: οι πράξεις μεταξύ των αριθμών γίνονται απευθείας, χωρίς να χρειάζεται μετατροπή τους, ανεξάρτητα από το πρόσημό τους. Έτσι η διαδικασία της πρόσθεσης εφαρμόζεται αυτούσια και σε προσημασμένους αριθμούς. 52
Πράξεις προσημασμένων ακεραίων αριθμών (2) Στο δεύτερο άθροισμα, το αποτελεσμα της πρόσθεσης έχει και ένα επιπλέον Bit, γιατί 11001010 (2) + 01000100 (2) = 100001110 (2 ). Αυτό το επιπλέον Bit το αγνοούμε και παίρνουμε το σωστό αποτέλεσμα. Το ίδιο ισχύει και για το τέταρτο άθροισμα, αφού 11111101 (2) + 11110010 (2) = 111101111 (2). Διάγραμμα 9: Πράξεις προσημασμένων ακεραίων αριθμών (Διδάσκων, 2015). 53
Υπερχείλιση (Data overflow) (1) Η μόνη περίπτωση στην εκτέλεση των πράξεων που χρειάζεται προσοχή είναι όταν το αποτέλεσμα μίας πράξης είναι πολύ μεγάλο ή πολύ μικρό και δεν μπορεί να παρασταθεί με το πλήθος των bits που έχουμε στη διάθεσή μας. Τότε λέμε ότι η πράξη προκάλεσε υπερχείλιση (overflow) του αποτελέσματος. 54
Υπερχείλιση (Data overflow) (2) Το άθροισμα των αριθμών -110 και -33, που είναι -143, δεν μπορεί να παρσταθεί με 8 Bits, γιατί ο μικρότερος αριθμός που μπορεί να παρασταθεί με 8 Bits είναι ο -128. Αν προσθέσουμε αυτούς τους δυο αριθμούς, όπως βλέπουμε στο σχήμα το αποτελέσμα είναι λανθασμένο. Διάγραμμα 10: Υπερχείλιση (Διδάσκων, 2015). Οι υπολογιστές διαθέτουν εσωτερικούς μηχανισμούς για να εντοπίζουν τις περιπτώσεις που μία αριθμητική πράξη προκαλεί υπερχείλιση. 55
Ασκήσεις (1) Μετατρέψτε τους πιο κάτω αριθμούς από δυαδικό σε δεκαδικό σύστημα αρίθμησης Α1.10100111 <2>? <10> Α2.11110100 <2>? <10> Α3.0100111 <2>? <10> Α1.10100111<2> 128+0+32+0+0+4+2+1 <10> 167 <10> Α2.11110100 <2> 128+64+32+16+0+4+0+0 <10> 39 <10> Α3.0100111 <2> 0+32+0+0+4+2+1 <10> 39 <10> 56
Ασκήσεις (2) Ερώτηση: Πόσα bits χρειαζόμαστε για να αναπαραστήσουμε τις μέρες τις βδομάδας; Απάντηση: 7 μέρες άρα 3 bits (23=8 συνδυασμούς) Πίνακας 3: Ασκήσεις (Διδάσκων, 2015). 57
Ασκήσεις (3) Ερώτηση: Πόσα bits χρειαζόμαστε για να αναπαραστήσουμε τις μέρες ενός χρόνου; Απάντηση: 365 μέρες άρα 9 bits (29=512 συνδυασμούς) Πίνακας 4: Ασκήσεις (Διδάσκων, 2015). 58
Ασκήσεις (4) Ερώτηση: Πόσα bits χρειαζόμαστε για να αναπραστήσουμε τους παίκτες ποδοσφαίρου και τις ομάδες τους για ένα παιχνίδι? Απάντηση: 2 ομάδες, άρα 1 bit (2 1 2 συνδυασμούς) 11 παίκτες 4 bits (2 4 16 συνδυασμούς ) Σύνολο: 5 bits 59
Αναπαράσταση δεδομένων: Ασκήσεις (1) H αναπαράσταση κατά των κώδικα ASCII. Ερώτηση: Από ποιο σχήμα μπιτ αναπαριστάται το g ; Απάντηση (δείτε εικόνα 3): Στήλη: 110 Γραμμή:0111 Άρα: 1100111 Εικόνα 3: Αναπαράσταση κειμένου ASCII (Ανακτήθηκε, 10 μαρτίου 2015). 60
Αναπαράσταση δεδομένων: Ασκήσεις (2) H αναπαράσταση κατά των κώδικα ASCII. Ερώτηση: Από ποιο σχήμα μπιτ αναπαριστάται το @ ; Απάντηση (δείτε εικόνα 4): Στήλη: 100 Γραμμή:0000 Άρα: 1000000 Εικόνα 4: Αναπαράσταση κειμένου ASCII (Ανακτήθηκε, 10 μαρτίου 2015). 61
Αναπαράσταση κειμένου: ASCII (4) H αναπαράσταση κατά των κώδικα ASCII. Ερώτηση: Από ποιο σχήμα μπιτ αναπαριστάται το Hello ; Απάντηση (δείτε εικόνα 5): Η:1001000, e: 1100101, I: 1101100, I:1101100, o:1101111 Εικόνα 5: Αναπαράσταση κειμένου ASCII (Ανακτήθηκε, 10 μαρτίου 2015). 62
SMS Ένα SMS μπορεί να περιέχει μέχρι 1120 bits. Μέχρι πόσους χαρακτήρες μπορούμε να γράψουμε σε ένα μήνυμα SMS; Ανάλογα με την κωδικοποίηση. Τυπική κωδικοποίηση: 7bit ανά χαρακτήρα (λατινικό αλφάβητο). Εκτεταμένη κωδικοποίηση: 8bit ή 16bit ανά χαρακτήρα (αλφάβητα όπως τα Ελληνικό ή Κινέζικο). 63
Αναπαράσταση εικόνας Δύο βασικές μέθοδοι: Ψηφιογραφική αναπαράσταση (bitmap graphics). Διανυσματική αναπαράσταση (vector graphics). 64
Αναπαράσταση εικόνας: ψηφιογραφικά (1) Βήμα 1. Διαιρούμε την εικόνα σε πίξελ (=pixel = picture element = εικονοστοιχείo) Εικόνα 7: Αναπαράσταση εικόνας: ψηφιογραφικά (Ανακτήθηκε, 10 μαρτίου 2015). 65
Αναπαράσταση εικόνας: ψηφιογραφικά (2) Βήμα 2. Αναπαριστούμε κάθε πίξελ με 1 bit: το κυρίαρχο χρώμα στο πίξελ είναι μαύρο 0 το κυρίαρχο χρώμα στο πίξελ είναι άσπρο 1 Εικόνα 8: Αναπαράσταση εικόνας ψηφιογραφικά -1bit 2 χρώματα (Ανακτήθηκε, 10 μαρτίου 2015). 66
Αναπαράσταση εικόνας: ψηφιογραφικά (3) Βήμα 3. Συνενώνουμε τα bit όλων των πίξελ σε ένα μεγάλο σχήμα bit για την εικόνα. Διάγραμμα 11: Αναπαράσταση εικόνας: ψηφιογραφικά (Διδάσκων, 2015). 67
Αναπαράσταση εικόνας: ψηφιογραφικά (4) Ερώτηση: Αν η ανάλυση είναι 20x20 πίξελ, πόσα μπιτ χρειαζόμαστε για την αναπαράσταση; Απάντηση: 400. 68
Αναπαράσταση εικόνας: ψηφιογραφικά (5) Ερώτηση: Τι γίνεται αν η εικόνα δεν είναι πλήρως ασπρόμαυρη; Εικόνα 9: παράδειγμα μη πλήρους ασπρόμαυρης εικόνας (Ανακτήθηκε, 10 μαρτίου 2015). Απάντηση: Αναπαριστούμε κάθε πίξελ με ένα σχήμα πολλών μπιτ. 69
Αναπαράσταση εικόνας: ψηφιογραφικά (6) Ερώτηση: Αν η ανάλυση είναι 20x20 πίξελ και υπάρχουν 8 επίπεδα γκρίζου, πόσα bit χρειαζόμαστε; Απάντηση: ανάλυση 20x20 400 πίξελ 8 επίπεδα γκρίζου 3 bit /πίξελ άρα συνολικά: 1200 bit 70
Αναπαράσταση εικόνας: ψηφιογραφικά (7) Ερώτηση: Τι γίνεται αν η εικόνα είναι έγχρωμη;. Εικόνα 10: παράδειγμα έγχρωμης εικόνας-8 bits (Ανακτήθηκε, 10 μαρτίου 2015). Απάντηση: Αναπαριστούμε κάθε πίξελ με 3 σχήματα bit, για τα χρώματα κόκκινο, πράσινο, μπλε (RGB). 71
Αναπαράσταση εικόνας: ψηφιογραφικά (8) Ερώτηση: Αν η ανάλυση είναι 30x30 πίξελ και υπάρχουν 8 επίπεδα για καθένα από τα τρία χρώματα, πόσα bit χρειαζόμαστε; Απάντηση: ανάλυση 30x30 900 πίξελ 8 επίπεδα κόκκινου 3 bit 8 επίπεδα πράσινου 3 bit 8 επίπεδα μπλε 3 bit επομένως: 9 bit /πίξελ άρα συνολικά: 8100 bit 72
Αναπαράσταση εικόνας: ψηφιογραφικά (9) Είναι σημαντικό η ανάλυση να είναι η κατάλληλη. Εικόνα 11: παράδειγμα έγχρωμης εικόνας υψηλής ανάλυσης (Ανακτήθηκε, 10 μαρτίου 2015). μεγάλη ανάλυση καλή ποιότητα, αλλά και πολλά bit. 73
Αναπαράσταση εικόνας: ψηφιογραφικά (10) Είναι σημαντικό η ανάλυση να είναι η κατάλληλη. Εικόνα 12: Αναπαράσταση εικόνας μικρής ανάλυσης (Ανακτήθηκε, 10 μαρτίου 2015). μικρή ανάλυση κακή ποιότητα, αλλά και λίγα bit 74
Αναπαράσταση εικόνας: διανυσματικά Κάθε αντικείμενο περιγράφεται αναλυτικά (με παραμέτρους, εξισώσεις, κλπ.) και ζωγραφίζεται εκ νέου όποτε αναπαράγουμε την εικόνα. Πλεονεκτήματα: - Μικρό συνολικό πλήθος bit. - Εύκολη μεγέθυνση/σμίκρυνση χωρίς βλάβη της ποιότητας. Μειονέκτημα: - Ακατάλληλη για εικόνες του πραγματικού κόσμου. 75
Αναπαράσταση εικόνας: ασκήσεις (1) Ερώτηση: Αν η ανάλυση είναι 20x30 πίξελ, τα χρώματα είναι μαύρο και άσπρο. Πόσα bit χρειαζόμαστε για την αναπαράσταση; Απάντηση: 600. Ερώτηση: Αν η ανάλυση είναι 20x30 πίξελ, τα χρώματα είναι κόκκινο, κίτρινο, πράσινο και μπλε. Πόσα bit χρειαζόμαστε για την αναπαράσταση; Απάντηση: 1200. 76
Αναπαράσταση εικόνας: ασκήσεις (2) Ερώτηση: Αν η ανάλυση είναι 10x20 πίξελ και υπάρχουν 8 επίπεδα γκρίζου, πόσα bit χρειαζόμαστε; Απάντηση: ανάλυση 10x20 200 πίξελ 8 επίπεδα γκρίζου 3 μπιτ/πίξελ άρα συνολικά: 600 bit 77
Αναπαράσταση εικόνας: ασκήσεις (3) Ερώτηση: Αν η ανάλυση είναι 30x30 πίξελ και υπάρχουν 12επίπεδα γκρίζου, πόσα bit χρειαζόμαστε; Απάντηση: ανάλυση 30x30 ισοδυναμεί με: 200 πίξελ 12 επίπεδα γκρίζου 0 ισοδυναμεί με: 3 μπιτ/πίξελ άρα συνολικά: 3600 bit 78
Αναπαράσταση εικόνας: ασκήσεις (4) Ερώτηση: Αν η ανάλυση είναι 30x30 πίξελ και υπάρχουν 8 επίπεδα γκρίζου, πόσα bit χρειαζόμαστε; Απάντηση: ανάλυση 30x30 ισοδυναμεί με: 900 πίξελ 8 επίπεδα κόκκινου ισοδυναμεί με 3 μπιτ 8 επίπεδα πράσινου ισοδυναμεί με 3 μπιτ 8 επίπεδα μπλέ ισοδυναμεί με 3 μπιτ επομένως 9 μπιτ/πίξελ άρα συνολικά: 8100 bit 79
Αναπαράσταση ήχου (1) Ταλάντωση: 1. της φωνητικής χορδής. 2. των μορίων του αέρα. 3. της μεμβράνης του μικροφώνου. 4. της έντασης του ρεύματος. 5. της μεμβράνης του μεγαφώνου. 6. των μορίων του αέρα. 7. του τυμπάνου του αυτιού. 80
Αναπαράσταση ήχου (2) ταλάντωση συνεχώς μεταβαλλόμενου πλάτους Διάγραμμα 12: Αναπαράσταση ήχου (Διδάσκων, 2015). 81
Αναπαράσταση ήχου (3) Βήμα 1. Διαιρούμε τη ροή σε δείγματα (δείγμα= το πλάτος της ταλάντωσης σε δεδομένη στιγμή) Διάγραμμα 13: Αναπαράσταση ήχου (Διδάσκων, 2015). 82
Αναπαράσταση ήχου (4) Βήμα 2. Αναπαριστούμε κάθε διαφορετικό δείγμα με ένα διαφορετικό σχήμα bit. Π.χ.: πλάτος -50 πλάτος -49 πλάτος 49 πλάτος 50 0000000 0000001 1100100 1100101 Βήμα 3. Συνενώνουμε τα bit όλων των δειγμάτων σε ένα μεγάλο σχήμα bit για τον πλήρη ήχο. 83
Αναπαράσταση ήχου (5) Ερώτηση: Αν ο ήχος διαρκεί 5 δευτερόλεπτα, και παίρνουμε 1000 δείγματα/δευτερόλεπτο, και υπάρχουν 128 επίπεδα πλάτους, πόσα bit χρειαζόμαστε; Απάντηση: επομένως: 5 δευτερόλεπτα ήχου 1000 δείγματα/δευτερόλεπτο 5000 δείγματα 128 επίπεδα πλάτους 7 bit /δείγμα άρα συνολικά: 35000 bit 84
Αναπαράσταση βίντεο Απλώς συνδυάζουμε την αναπαράσταση των εικόνων με την αναπαράσταση του ήχου. 85
Βιβλιογραφία Forouzan, Β. Α. (2003). Εισαγωγή στην Επιστήμη των Υπολογιστών, Εκδόσεις Κλειδάριθμος. Tanenbaum, Α. S. (2013). Modern Operating Systems (3rd Edition), Pearson. Παπακωνσταντίνου, Γ., Τσανάκας, Π., Κοζύρης, Ν., Μανουσοπούλου, Α. και Ματζάκος,Π. (2004). Τεχνολογία Υπολογιστικών Συστημάτων και Λειτουργικά Συστήματα, ISBN 960-7251-25-3, Αθήνα. Πασπαλλής N. (2011). Εισαγωγή στην Επιστήμη της Πληροφορικής Σημειώσεις μαθήματος. Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου. 86