Αναπαράστασης πληροφορίας με δυαδικά ψηφία (2)
description
Transcript of Αναπαράστασης πληροφορίας με δυαδικά ψηφία (2)
Αναπαράστασης πληροφορίας με δυαδικά ψηφία: Μέρος Β
ΠερίληψηΠερίληψη
Έννοιες:• Μετατροπή αριθμών σε δυαδικά
ψηφία• Ακέραιοι αριθμοί• Πραγματικοί αριθμοί• Demo (από CD βιβλίου)
• Μετατροπή κειμένου (γραμμάτων) σε δυαδικά ψηφία
• Μετατροπή σημάτων σε δυαδικά ψηφία
• Πρότυπες μορφές (standard forms) του δυαδικού κώδικα
Υλικό ΑναφοράςΥλικό Αναφοράς
• Cyganski, D., Orr, A. O., and Vaz, R. F., Information Technology Inside and Outside, Prentice Hall, 2001, σελίδες 45-58
• Αναπαράσταση της πληροφορίας στον Υπολογιστή• http://www.cs.uoi.gr/~phadjido/courses/BET/lectures/BET-Lec05.pdf
• Κείμενο• http://www.cs.ucy.ac.cy/~nicolast/courses/cs422/lectures/mm06.pdf
• Χρήση εθνικών και ειδικών χαρακτήρων στην HTML• http://www.cs.tut.fi/~jkorpela/html/chars.iso7#theway
ΕπανάληψηΕπανάληψη
• Δυαδικά ψηφία (binary digits = bits)• 0 και 1 => μόνο δύο διακριτές καταστάσεις• Αναπαράσταση πληροφορίας με στοιχειοσειρές 0101
• Με Κ bits αναπαριστούμε 2Κ μοναδικές στοιχειοσειρές
• Ο δυαδικός κώδικας προσφέρει • ευρωστία απέναντι στο θόρυβο • ανοχή σε σφάλματα που επηρεάζουν την αναγνώριση των
συμβόλων• εύκολη υλοποίηση για ψηφιακά συστήματα
• Υλοποίηση δυαδικών ψηφίων• Ηλεκτρική• Μαγνητική• Οπτική
Δύναμη αναπαράστασης με Κ bitsΔύναμη αναπαράστασης με Κ bits
• Με 3 bits έχουμε 8 μοναδικά σχήματα (patterns)
000001010011100101110111
2*2*2 = ; = 23 = 8
• Με 4 bits έχουμε 16 μοναδικά σχήματα
0000, 10000001, 10010010, 10100011, 10110100, 11000101, 11010110, 11100111, 1111
2*2*2*2= 16
Γενικά με Κ bits έχουμε 2Κ
μοναδικά σχήματα
Δύο πιθανές τιμές που μπορεί να πάρει ένα δυαδικό ψηφίο
Δυνάμεις του δύοΔυνάμεις του δύο
ΠαραδείγματαΠαραδείγματα
• Θέλουμε να αναπαραστήσουμε 256 διαφορετικά μηνύματα με δυαδικές «λέξεις» (words). Πόσα δυαδικά ψηφία πρέπει να έχει κάθε λέξη;
256 = 28 => κάθε λέξη πρέπει να έχει 8 bits
• Θέλουμε να αναπαραστήσουμε 100 διαφορετικά μηνύματα με δυαδικές «λέξεις». Πόσα δυαδικά ψηφία πρέπει να έχει κάθε λέξη;
26 = 64
27 = 128 => κάθε λέξη πρέπει να έχει 7 bits
Αναπαράσταση αριθμητικής πληροφορίας
Αναπαράσταση αριθμητικής πληροφορίας
• Κάθε θέση έχει και μια τιμή που είναι δύναμη του 2
• Δηλαδή η θέση 0 (η πρώτη θέση από τα δεξιά) έχει τιμή 20 = 1
• Ένας δυαδικός αριθμός μετατρέπεται σε δεκαδικό αν προσθέσουμε τις τιμές σε εκείνες τις θέσεις που έχουν bit 1
27 128
0
2664
1
2532
0
24
16
0
238
0
224
1
212
1
201
1 τιμή
64 + 4 + 2 + 1 = 71
θέση
0 01 012 103 114 1005 1016 1007 1118 10009 1001
10 1010
Δεκαδικός αριθμός
Δυαδικός αριθμός
ΠαραδείγματαΠαραδείγματα
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
• Δυαδικός αριθμός με 3 ψηφία
μπορούμε να αναπαραστήσουμε 8 δεκαδικούς αριθμούς: 0 – 710
• Δυαδικός αριθμός με 4 ψηφία
μπορούμε να αναπαραστήσουμε 16 δεκαδικούς αριθμούς: 0 – 1510
• Δυαδικός αριθμός με 8 ψηφία
μπορούμε να αναπαραστήσουμε 256 δεκαδικούς αριθμούς: 0 – 25510
• …
Δεκαδικός αριθμός
Δυαδικός αριθμός
Αναπαράσταση ακέραιων αριθμώνΑναπαράσταση ακέραιων αριθμών
• Εύκολη αναπαράσταση.• Στους Η/Υ με 16 bits αναπαριστούνται 216 = 65,536
ακέραιοι αριθμοί• Θετικοί αριθμοί από το 0 μέχρι το 65,535 ή• Προσημασμένοι αριθμοί μεταξύ -32,768 και 32,767
• διάφοροι τρόποι αναπαράστασης• π.χ. ένα από τα ψηφία αναπαριστά το πρόσημο και τα υπόλοιπα
την τιμή του αριθμού
• Για πιο μεγάλους αριθμούς χρησιμοποιείται επιστημονικός συμβολισμός με δυαδικές λέξεις• π.χ. για τον αριθμό 62 x 1015
αποθηκεύονται οι δύο αριθμοί 62 και 15• Ο τύπος (format) και ο αριθμός των bit που
χρησιμοποιούνται για την αναπαράσταση πρέπει να είναι γνωστός σε επικοινωνία δεδομένων
Μετατροπή δεκαδικού σε δυαδικό αριθμό
Μετατροπή δεκαδικού σε δυαδικό αριθμό
• Διαίρεσε τον δεκαδικό αριθμό n με το 2.
• Το υπόλοιπο της διαίρεσης είναι το επόμενο bit του αριθμού.
• Συνέχισε με n το πηλίκο
• Παράδειγμα:Το 71 είναι το 1000111 στο δυαδικό σύστημα
35
71 2
1 2
171 21 8 2
40 2
0 2 2
11 20
0
Διάβασε τα υπόλοιπα από τα δεξιά (κάτω) προς τα αριστερά (πάνω).
Δυαδικά κωδικοποιημένος δεκαδικός
Δυαδικά κωδικοποιημένος δεκαδικός
• Συμβολισμός δυαδικά κωδικοποιημένου δεκαδικού αριθμού (binary coded decimal notation – BCD)• Υπάρχει ένας κωδικός για
κάθε αριθμό 0-9• Εναλλακτική αναπαράσταση
ακέραιων αριθμών• Δεν χρειάζεται να ξέρουμε
το διάστημα τιμών των αριθμών
• π.χ. ο αριθμός 749 σε BCD είναι
011101001001 7 4 9
Αναπαράσταση κειμένουΑναπαράσταση κειμένου
• Το κείμενο μπορεί να περιγραφεί σαν ένα σύνολο από χαρακτήρες
• Η επιμέλεια κειμένου περιλαμβάνει: • Κωδικοποίηση
χαρακτήρων: περιγράφεται μόνο το νοηματικό περιεχόμενο του κειμένου
• Μορφοποίηση σελίδας: καθορίζεται ο τρόπος παρουσίασης του κειμένου
Κωδικοποίηση κειμένουΚωδικοποίηση κειμένου
• Μετατροπή της πληροφορίας σε συνδυασμό από bits
• Κωδικοποίηση Χαρακτήρων • Σε κάθε χαρακτήρα
αντιστοιχούμε ένα συνδυασμό bit, δηλ. ένα δυαδικό αριθμό
• Δεν υπάρχει μοναδικός τρόπος κωδικοποίησης
• Για να είναι κατανοητό ένα κείμενο σε 2 διαφορετικούς Η/Υ θα πρέπει να χρησιμοποιούν την ίδια κωδικοποίηση χαρακτήρων
Χαρακτήρες και αλφάβηταΧαρακτήρες και αλφάβητα
• ASCII • Κώδικας με 7 bits• 128 χαρακτήρες για αλφαριθμητικά
• ISO-Latin-1 (The Extended Character Set)• Κώδικας με 8 bits• 256 χαρακτήρες• Περιλαμβάνει τον κώδικα ASCII
• Υποστηρίζει πολυγλωσικό σύστημα• Χρησιμοποιείται σε HTML σελίδες
• Unicode• Χρησιμοποιεί 16 bits, μέχρι 65.000 χαρακτήρες• Version 2.0: υποστηρίζει 25 γλώσσες και 38.885 χαρακτήρες• Για οικουμενική χρήση χαρακτήρων σε διάφορες πλατφόρμες
και εφαρμογές• HTML επιτρέπει εισαγωγή Unicode χαρακτήρων
• π.χ. 水 παριστάνει τον κινέζικο χαρακτήρα για το νερό• Για περισσότερες πληροφορίες
• http://www.cs.tut.fi/~jkorpela/html/chars.iso7#theway
Κώδικας ASCIIΚώδικας ASCII
• Κώδικας ASCII (= American Standard Code for Information Interchange) ή Αμερικανικός πρότυπος κώδικας για την ανταλλαγή πληροφοριών
• Απλή κωδικοποίηση των λατινικών χαρακτήρων συν κάποια ειδικά σύμβολα
• Χρήσιμο για την κωδικοποίηση πληροφορίας που εισέρχεται από το πληκτρολόγιο ενός Η/Υ
• Αναπαράσταση γραμμάτων και άλλων συμβόλων σε δυαδικά ψηφία αλφαριθμητικός κώδικας (alphanumeric code)
Κώδικας ASCIIΚώδικας ASCII
• Χρησιμοποιεί 7 bits για την παρουσίαση 128 (= 27 ) στοιχείων• Συμπεριλαμβάνει 128 αλφαριθμητικά στοιχεία:
• 94 στοιχεία που μπορούν να εκτυπωθούν • 26 κεφαλαία and 26 μικρά γράμματα του Αγγλικού αλφαβήτου• 10 αριθμούς (0, 1, …, 9)• 32 ειδικά σύμβολα (π.χ. @, $, *, &, % …)
• 34 στοιχεία που δεν μπορούν να εκτυπωθούν (χαρακτήρες που χρησιμοποιούνται στον έλεγχο υπολογιστών)
• Αποθηκευτικός χώρος 1 byte = 8 bits• μπορούν να αναπαρασταθούν 28 =256 διαφορετικοί χαρακτήρες• oι πλεονάζοντες 128 χαρακτήρες μπορούν να χρησιμοποιηθούν
για ειδικά σύμβολα ή χαρακτήρες άλλων αλφάβητων • π.χ. το δυαδικό ψηφίο ισοτιμίας για αναγνώριση σφαλμάτων
• το περιεχόμενο των πλεοναζόντων θέσεων δεν έχει τυποποιηθεί
Πίνακας ASCIIΠίνακας ASCII
A6 A5 A4
A3 A2 A1 A0
Ο κώδικας διαβάζεται ως A6 A5 A4 A3 A2 A1 A0Π.χ. το ‘Α’ = 1000001 και αποθηκεύεται ως 01000001
Αναπαράσταση πραγματικών αριθμών
Αναπαράσταση πραγματικών αριθμών
• Ένας πραγματικός αριθμός μπορεί να πάρει άπειρες τιμές => χρειαζόμαστε δυαδικές λέξεις με ένα άπειρο αριθμό ψηφίων! • Δεν είναι εφικτό
• Πως μπορούμε λοιπόν να αναπαραστήσουμε πραγματικούς αριθμούς; • Με την κατάλληλη ισορροπία μεταξύ ακρίβειας και ορθότητας • Χρησιμοποιούμαι ένα πεπερασμένο αριθμό δυαδικών ψηφίων κατά
προσέγγιση
• Ακρίβεια (precision) • Καθορίζει πόσα δεδομένα (και άρα πόσα ψηφία) πρέπει να έχουμε
• Ορθότητα (accuracy)• Καθορίζει πόσο έγκυρα ή ορθά είναι τα δεδομένα (δηλ. πόσο κοντά
είμαστε στον πραγματικό αριθμό)
• Οι περιορισμοί στην εφικτή ορθότητα γνώσης της πληροφορίας καθορίζει πόση ακρίβεια χρειάζεται στην δυαδική αναπαράσταση
ΠαράδειγμαΠαράδειγμα
• Μέτρηση της θερμοκρασίας που κυμαίνεται μεταξύ 60 και 70 βαθμούς Φαρενάιτ.
• Χρησιμοποιούμε προσέγγιση στην δυαδική αναπαράσταση
• Με 8 bits έχουμε 256 διαφορετικές τιμές που διαφέρουν κατά (70 – 60) / 256 = 0,0390
• Η θερμοκρασία που μετράμε στρογγυλεύεται στην πιο κοντινή τιμή στον πίνακα και μετά αποθηκεύεται με την αντίστοιχη δυαδική λέξη
• => ξέρουμε την θερμοκρασία με ακρίβεια 0,0390
ΠαράδειγμαΠαράδειγμα
• Αν θέλουμε μεγαλύτερη ακρίβεια στην τιμή της θερμοκρασίας τότε αυξάνουμε τον αριθμό των δυαδικών ψηφίων
• Με 16 bits έχουμε 65536 διαφορετικές τιμές που διαφέρουν κατά
(70 – 60) / 65536 = 0,000150
• Ο κατάλληλος αριθμός ψηφίων εξαρτάται από δύο πράγματα:1. με πόση ακρίβεια μπορούμε να μετρήσουμε την θερμοκρασία στην
πραγματικότητα2. Με πόση ακρίβεια θέλουμε να ξέρουμε την θερμοκρασία
• Πολύ πιθανό να μην χρειάζονται περισσότερα από 8 bits σε αυτή την περίπτωση.
Αναπαράσταση πραγματικών αριθμών
Αναπαράσταση πραγματικών αριθμών
• Οι Η/Υ αποθηκεύουν και επεξεργάζονται πραγματικούς αριθμούς σε μορφή αριθμών κινητής υποδιαστολής(floating point numbers)• Βασίζεται στον επιστημονικό συμβολισμό αριθμών• Επιτρέπει την αναπαράσταση πολύ μεγάλων και πολύ μικρών
αριθμών με αποτελεσματικό τρόπο
• Αριθμός κινητής υποδιαστολής με 32 bits
τιμή = (-1)πρόσημο x 2(εκθέτης-127) x (1 + σταθερή) πρόσημο = 1 bit (ψηφίο #31)
εκθέτης = 8-bit ακέραιος αριθμός (ψηφία #30-23)σταθερή = 23-bit πραγματικός αριθμός < 1 (ψηφία #22-0)
• Επίσης, αριθμοί κινητής υποδιαστολής με 64 bits πρόσημο = 1 bit (ψηφίο #63)
εκθέτης = 11-bit ακέραιος αριθμός (ψηφία #62-52)σταθερή = 52-bit πραγματικός αριθμός < 1 (ψηφία #51-0)
Αναπαράσταση σημάτωνΑναπαράσταση σημάτων
• Μετατροπή αναλογικής πληροφορίας σε ψηφιακή• Η τιμή της θερμοκρασίας στρογγυλεύεται στην πιο κοντινή ακέραια
τιμή σε κάθε καθορισμένο διακριτό χρονικό διάστημα
• Αναπαράσταση ψηφιακής πληροφορίας σε κάθε διακριτό χρόνο με δυαδικά ψηφία • Δηλ. 66 = 01000010, 67 = 01000011, κοκ.
Αριθμητικά ΣυστήματαΑριθμητικά Συστήματα
• Δυαδικό (binary) σύστημα• Βάση το 2• Τιμές 0 και 1
• Δεκαδικό (decimal) σύστημα• Βάση το 10• Τιμές 0 – 9
• Οκταδικό (octal) σύστημα• Βάση το 8 • Τιμές 0 – 7
• Δεκαεξαδικό (hexadecimal ή HEX) σύστημα• Βάση το 16• Τιμές 0 – F• 6 καινούρια σύμβολα Α-F
• Το οκταδικό και δεκαεξαδικό χρησιμοποιούνται για εύκολη ανάγνωση δυαδικού κώδικα
Βολικές μορφές δυαδικού κώδικαΒολικές μορφές δυαδικού κώδικα
• bit είναι ένα δυαδικό ψηφίο (0 ή 1). • byte είναι 8 bits • word είναι ένα ή περισσότερα bytes (ο αριθμός των bytes είναι
δύναμη του 2) • παράδειγμα 1, 2, 4, ή 8 bytes = 8, 16, 32, 64 bits αντιστοίχως
• Μονάδα μέτρησης της μνήμης Η/Υ είναι το byte• 1 kilobyte (1 KB) = 210 = 1024 bytes• 1 megabyte (1 MB) = 220 = 1024 x 1024 = 1.048.576 bytes• 1 gigabyte (1 GB) = 230 = 1024 x 1024 x 1024 = 1.073.741.824 bytes
Το νόημα της αποθηκευμένης πληροφορίας εξαρτάται από το «πλαίσιο» (context) στο οποίο βρίσκεται.
Τι μπορεί να αναπαραστήσει 1 byte;
Τι μπορεί να αναπαραστήσει 1 byte;
•256 (=28) πιθανότητες ή καταστάσεις 256 ακέραιους αριθμούς 0...255 128 προσημασμένους ακεραίους -128...0…+127 128 χαρακτήρες με ένα bit ελέγχου (π.χ κώδικας ASCII) Εντολές Η/Υ
•Το ακόλουθο byte 01001001 θα μπορούσε να σημαίνει: Ο χαρακτήρας ’I’ (κώδικας ASCII) Ο αριθμός 73 (δυαδική αναπαράσταση) Ο αριθμός 3 (έχει τρία 1) Ο αριθμός 49 (κώδικας BCD)
Ανίχνευσης και διόρθωσης σφαλμάτων
Ανίχνευσης και διόρθωσης σφαλμάτων
• Με ειδικούς κώδικες είναι εφικτό να γίνεται ανίχνευση και διόρθωση σφαλμάτων που συμβαίνουν στην μετάδοση δυαδικής πληροφορίας
• Βασική αρχή αυτών των κωδικών είναι ο πλεονασμός ψηφίων• δηλ. προσθέτονται επιπλέον δυαδικά ψηφία για σκοπούς
ανίχνευσης και διόρθωσης σφαλμάτων • π.χ. η προσθήκη του «ψηφίου ισοτιμίας» (parity bit) στον
κώδικα ASCII
ASCII με Δυαδικό Ψηφίο ΙσοτιμίαςASCII με Δυαδικό Ψηφίο Ισοτιμίας
• Ένα 8ο ψηφίο στον κώδικα ASCII δηλώνει ζυγή ή περιττή ισοτιμία• Ζυγή (ή Περιττή) ισοτιμία: τοποθετείτε το ψηφίο ισοτιμίας έτσι ώστε ο
συνολικός αριθμός των ψηφίων που έχουν την τιμή 1 μέσα στον οκταψήφιο κώδικα να είναι ζυγός (ή περιττός)
• Παράδειγμα:• Κάνε τον επταψήφιο κώδικα 1011011 σε οκταψήφιο κώδικα με ζυγή
ισοτιμία 11011011• Κάνε τον επταψήφιο κώδικα 1011011 σε οκταψήφιο κώδικα με περιττή
ισοτιμία 01011011
• Και στις δύο περιπτώσεις ο αριθμός των σφαλμάτων που μπορεί να ανιχνευθεί είναι περιττός! (Γιατί;)