1 / 38

Παράσταση τιμών δεδομένων

Παράσταση τιμών δεδομένων. Χατζηγεωργίου Αλέξανδρος:. Παράσταση χαρακτήρων ( char στην C, Pascal, Java) Πιο συνηθισμένη μορφή γραπτής επικοινωνίας είναι με σύμβολα Α, Β, . . . , Ζ, a, b, . . . , z, 0, . . . , 9, +, -, *, /, $, & κλπ Εσωτερική αναπαράσταση :

evadne
Download Presentation

Παράσταση τιμών δεδομένων

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Παράσταση τιμών δεδομένων Χατζηγεωργίου Αλέξανδρος: • Παράσταση χαρακτήρων (char στην C, Pascal, Java) • Πιο συνηθισμένη μορφή γραπτής επικοινωνίας είναι με σύμβολα • Α, Β, . . . , Ζ, a, b, . . . , z, 0, . . . , 9, +, -, *, /, $, & κλπ • Εσωτερική αναπαράσταση: • Κάθε χαρακτήρας  ακέραιο αριθμό (ordinal number) • Η απεικόνιση των χαρακτήρων σε ακεραίους ονομάζεται κώδικας χαρακτήρων • Κώδικας ASCII (American Standard Code for Information Interchange) • 7 bits  27 = 128 χαρακτήρες • Διαταξινομημένη σειρά: Αν ‘C’ μετά το ‘Α’ τότε ord(‘C’) > ord(‘A’) • Ικανοποιητικός για αγγλικά, ανεπαρκής για άλλες γλώσσες • Λύση: Χρήση 8 δυφίων (Για τα ελληνικά κώδικας ΕΛΟΤ 928)

  2. ΕΛΟΤ 928 Έστω ο char (41)HEX Χατζηγεωργίου Αλέξανδρος:

  3. Παράσταση τιμών δεδομένων Χατζηγεωργίου Αλέξανδρος: • Κώδικας UNICODE • Υποστηρίζεται από την Java, Windows NT • Κάθε χαρακτήρας  τακτικό αριθμό 16 δυφίων (σημείο κώδικα) • 216  65536 • Οι πρώτοι 128 χαρακτήρες είναι ίδιοι με τον ASCII • Ομάδες χαρακτήρων. Λατινικά: 336 σημεία, Ελληνικά 144, εβραϊκά 112 κ.ο.κ. • Ούτε ο UNICODE είναι επαρκής: Στον πλανήτη χρησιμοποιούνται γύρω στους 200.000 χαρακτήρες !!!

  4. Αριθμητική Υπολογιστών Χατζηγεωργίου Αλέξανδρος: • Αριθμητική Πεπερασμένης Ακρίβειας: Καθώς η ποσότητα της διαθέσιμης μνήμης για την αποθήκευση ενός αριθμού είναι καθορισμένη, οι αριθμοί που μπορούν να χρησιμοποιηθούν μπορούν να αναπαρασταθούν με έναν καθορισμένο αριθμό ψηφίων • Έστω ότι για την αναπαράσταση θετικών ακεραίων διατίθενται μόνο τρία δεκαδικά ψηφία. Με αυτό τον περιορισμό δεν μπορούμε να εκφράσουμε : • Αριθμούς μεγαλύτερους από 999 • Αρνητικούς αριθμούς • Κλάσματα • Μιγαδικούς αριθμούς

  5. Πεπερασμένη ακρίβεια Χατζηγεωργίου Αλέξανδρος: • Οι αριθμοί πεπερασμένης ακρίβειας δεν είναι κλειστοί ως προς καμία από τις τέσσερις βασικές πράξεις : • 600 + 600 = 1200 (πολύ μεγάλος) • 003 – 005 = - 2 (αρνητικός) • 050 x 050 = 2500 (πολύ μεγάλος) • 007 / 002 = 3.5 (όχι ακέραιος) • Σε ορισμένες περιπτώσεις έχουμε σφάλμα υπερχείλισης (overflow) δηλαδή το αποτέλεσμα είναι μεγαλύτερο από τον μεγαλύτερο αριθμό του συνόλου είτε σφάλμα ανεπάρκειας (underflow) όταν το αποτέλεσμα είναι μικρότερο από τον μικρότερο αριθμό του συνόλου • Σε άλλες περιπτώσεις το αποτέλεσμα απλώς δεν ανήκει στο σύνολο

  6. Συστήματα Χατζηγεωργίου Αλέξανδρος: • Ένας δεκαδικός αριθμός αποτελείται από μία ακολουθία δεκαδικών ψηφίων και ίσως από μία υποδιαστολή. Οποιοσδήποτε αριθμός εκφράζεται ως : • Π.χ. 3347.4 = 3x103 + 3x102 + 4x101 + 7x100 + 4x10-1 • Το σύστημα αυτό ονομάζεται δεκαδικό, λόγω του ότι ως εκθετική βάση έχει επιλεγεί το 10 • Αντίστοιχα αριθμητικά συστήματα με βάση το 2, 8 και 16 είναι το δυαδικό, οκταδικό, δεκαεξαδικό • Ένα αριθμητικό σύστημα με βάση το k απαιτεί k διαφορετικά σύμβολα για την αναπαράσταση των ψηφίων

  7. Θεσιακά Συστήματα Χατζηγεωργίου Αλέξανδρος: • Ο γενικός κανόνας παράστασης σε ένα θεσιακό σύστημα έχει ως εξής: Ο αριθμός: • αn-1rn-1 + αn-2rn-2 + … + α1r1 + α0r0 + α-1r-1 + … + α-mr-m • συμβολίζεται ως: αn-1αn-2 … α1α0 α-1…α-m • Ως βάση ή ρίζαενός θεσιακού συστήματος ορίζεται το πλήθος των διαφορετικών ψηφίων που χρησιμοποιούνται για την παράσταση των αριθμών • Δεκαδικό: 0 1 2 3 4 5 6 7 8 9 • Δυαδικό: 0 1 • Οκταδικό : 0 1 2 3 4 5 6 7 • Δεκαεξαδικό : 0 1 2 3 4 5 6 7 8 9 Α Β C D E F

  8. Παραδείγματα Χατζηγεωργίου Αλέξανδρος: (1673.42) = 1x103 + 6x102 + 7x101 + 3x100 + 4x10-1 + 2x10-2 (100110)2 = 1x25 + 0x24 + 0x23 + 1x22 + 1x21 + 0x20 = (38)10 (372)8 = 3x82 + 7x81 + 2x80 = (250)10 (Α34F) = Ax163 + 3x162 + 4x161 + Fx160 = (41807)10

  9. Μετατροπές 1 0 1 1 1 1 1 1 0 1 = 765 Χατζηγεωργίου Αλέξανδρος: • Από δεκαδικό σε δυαδικό (Διαδοχικές διαιρέσεις με το 2) : 7 6 5 1 3 8 2 0 1 9 1 1 9 5 1 4 7 1 2 3 1 1 1 1 5 1 2 0 1 1 0

  10. Μετατροπές Χατζηγεωργίου Αλέξανδρος: • Από δεκαδικό σε oκταδικό (Διαδοχικές διαιρέσεις με το 8) : 7 6 5 3 5 9 5 6 4 1 1 9 7 1 4 6 1 1 ( 1 6 7 4 5 )8

  11. Μετατροπές 6 3 3 Χατζηγεωργίου Αλέξανδρος: • Από δεκαδικό σε oκταδικό : • Ευκολότερα με πίνακες μετατροπής από δυαδικό σε οκταδικό Δυαδικό Οκταδικό Δυαδικό Οκταδικό 0 0 0 0 1 0 0 4 0 0 1 1 1 0 1 5 0 1 0 2 1 1 0 6 0 1 1 3 1 1 1 7 (411)10 = (1 1 0 0 1 1 0 1 1)2

  12. Μετατροπές 1 A F Χατζηγεωργίου Αλέξανδρος: • Από δεκαδικό σε δεκαεξαδικό : (431)10 = (1 1 0 1 0 1 1 1 1)2

  13. Παράσταση τιμών δεδομένων Χατζηγεωργίου Αλέξανδρος: • Οι λέξεις στη μνήμη και οι καταχωρητές περιέχουν μόνο bits • Πρέπει με κάποιο τρόπο να κωδικοποιήσουμε τα πρόσημα των αριθμών και την ύπαρξη υποδιαστολής • Στους αριθμούς σταθερής υποδιαστολής (fixed point numbers) η υποδιαστολή θεωρείται ότι βρίσκεται πάντα σε σταθερό σημείο της λέξης • Ανάλογα με το πλήθος των bits διακρίνουμε: • βραχείς (short) 8 bits • απλής ακρίβειας (single precision) 16 bits • διπλής ακρίβειας (double precision) 32 bits • εκτεταμένης ακρίβειας (long) 64 bits

  14. Ορολογία Χατζηγεωργίου Αλέξανδρος: • Έστω ένας υπολογιστής με μήκος λέξης 32 bits. • 0 bit (δυφίο) • 0 nibble (τετράδα) • 01110001 byte (δυφιοσυλλαβή) • 0111000101110001half-word • 01110001011100010111000101110001 word (λέξη) • Στη συνέχεια θα εξετάσουμε δυνατούς τρόπους αναπαράστασης αριθμών με χρήση μιας τετράδας

  15. Παράσταση μέτρου 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 10 1011 11 1100 12 1101 13 1110 14 1111 15 Χατζηγεωργίου Αλέξανδρος: Παράσταση ακεραίων τιμών Δεν υπάρχει ούτε πρόσημο ούτε υποδιαστολή Ένας αριθμός n bits μπορεί να αναπαραστήσει τους αριθμούς από 0 έως 2n-1 Χρήση για αναπαράσταση διευθύνσεων (βλ. pointers στην C)

  16. Παράσταση μέτρου Χατζηγεωργίου Αλέξανδρος: Παράσταση κλασματικών τιμών Η υποδιαστολή θεωρείται ότι βρίσκεται πριν από το περισσότερο σημαντικό δυφίο Ένας αριθμός n bits μπορεί να αναπαραστήσει τους αριθμούς από 0 έως (2n-1)/2n 1000 0.5 1001 1010 1011 1100 1101 1110 1111 0.9375 (2-1 + 2-2 + 2-3 + 2-4) 0000 .0000 0001 .0625 (2-4) 0010 .125 (2-3) 0011 .1875 0100 .25 0101 0110 0111 H παράσταση αυτή ΔΕΝ χρησιμοποιείται στους υπολογιστές

  17. Σύστημα πρόσημο και μέτρο Χατζηγεωργίου Αλέξανδρος: • Το πιο σημαντικό bit (ΜSB) της ακολουθίαςχρησιμοποιείται για τον προσδιορισμό του προσήμου (0: +, 1: - ) • Τα υπόλοιπα (n-1) bits προσδιορίζουν το μέτρο του αριθμού σε δυαδική μορφή • Για n= 8 bits, Χ10 = 7  Χ2 = 00000111 Χ10 = - 7  Χ2 = 10000111

  18. Παράσταση προσήμου και μέτρου 0000 0 0001 +1 0010 +2 0011 +3 0100 +4 0101 +5 0110 +6 0111 +7 1000 0 1001 -1 1010 -2 1011 -3 1100 -4 1101 -5 1110 -6 1111 -7 Χατζηγεωργίου Αλέξανδρος: Παράσταση ακεραίων τιμών Υποτίθεται ότι δεν υπάρχει υποδιαστολή. Στην γενική περίπτωση αναπαριστώνται οι [-(2n-1-1), +(2n-1-1) ]

  19. Παράσταση προσήμου και μέτρου Χατζηγεωργίου Αλέξανδρος: Παράσταση κλασματικών τιμών Η υποδιαστολή θεωρείται ότι βρίσκεται αμέσως μετά το περισσότερο σημαντικό ψηφίο 1000 + .000 1001 - .125 1010 - .250 1011 - .375 1100 1101 1110 1111 - .875 (2-1 + 2-2 + 2-3) 0000 + .000 0001 + .125 (2-3) 0010 + .250 (2-2) 0011 + .375 0100 0101 0110 0111 + .875

  20. Παράσταση προσήμου και μέτρου Χατζηγεωργίου Αλέξανδρος: • Μειονεκτήματα • Το μηδέν αναπαρίσταται με δύο διαφορετικές ακολουθίες (0000, 1000). Επιπλέον το hardware πρέπει να ξέρει ότι το μηδέν αναπαρίσταται διττά • Απαιτούνται διαφορετικά κυκλώματα για την πρόσθεση και την αφαίρεση καθώς τα αποτελέσματα των πράξεων εξαρτώνται από το πρόσημο • Κατά συνέπεια ……. • Η παράσταση αυτή δεν χρησιμοποιείται πολύ συχνά

  21. Αριθμητική Δυαδικών Χατζηγεωργίου Αλέξανδρος: Πρόσθεση δυαδικών : Α + Β Αποτέλεσμα Κρατούμενο 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1

  22. Αριθμητική Δυαδικών Χατζηγεωργίου Αλέξανδρος: Πρόσθεση δυαδικών (πρόσημο και μέτρο) : 1ος Προσθετέος 0 0 1 1 1 (7)10 2ος Προσθετέος : 0 1 0 1 0 (10)10 Άθροισμα : 1 0 0 0 1 (17)10 Κρατούμενο : 0 1 1 1 0

  23. Παράσταση συμπληρώματος ως προς ένα 0000 0 0001 +1 0010 +2 0011 +3 0100 +4 0101 +5 0110 +6 0111 +7 1000 -7 1001 -6 1010 -5 1011 -4 1100 -3 1101 -2 1110 -1 1111 -0 Χατζηγεωργίου Αλέξανδρος: Το συμπλήρωμα ως προς ένα μιας δυαδικής ακολουθίας λαμβάνεται αλλάζοντας όλα τα δυφία από μηδέν σε ένα και αντιστρόφως 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 Παράσταση ακεραίων τιμών Οι αρνητικοί αναπαριστώνται ως το συμπλήρωμα ως προς ένα των θετικών Στην γενική περίπτωση αναπαριστώνται οι [-(2n-1-1), +(2n-1-1) ]

  24. Παράσταση συμπληρώματος ως προς ένα Χατζηγεωργίου Αλέξανδρος: Παράσταση κλασματικών τιμών Η υποδιαστολή θεωρείται ότι βρίσκεται αμέσως μετά το περισσότερο σημαντικό δυφίο Αν μία ακολουθία αρχίζει από 0 πρόκειται για θετικό αριθμό, αλλιώς για αρνητικό. Οι θετικές ακολουθίες παριστάνουν τους ίδιους αριθμούς με το σύστημα πρόσημο και μέτρο. Οι αρνητικές διαφέρουν 0000 + .000 0001 + .125 (2-3) 0010 + .250 (2-2) 0011 + .375 0100 0101 0110 0111 + .875 1000 - .875 (2-1 + 2-2 + 2-3) 1001 1010 1011 1100 1101 - .250 1110 - .125 1111 - .000

  25. Παράσταση συμπληρώματος ως προς ένα Χατζηγεωργίου Αλέξανδρος: Αφαίρεση Παρόλο που και σε αυτή την παράσταση υπάρχουν δύο ακολουθίες που αναπαριστούν το μηδέν, τα κυκλώματα του υλικού είναι απλούστερα Η ‘’λογική’’ της αφαίρεσης είναι η ακόλουθη: βρες το συμπλήρωμα του αφαιρετέου πρόσθεσε το συμπλήρωμα στο μειωτέο if η πρόσθεση δώσει τελικό κρατούμενο (1) then πρόσθεσε το κρατούμενο στο άθροισμα (στο LSB)

  26. Παράσταση συμπληρώματος ως προς ένα + 510  01012 01012 - + - 210  11012  (συμπλ ως προς ένα) 00102 + 710 01112 - 410  10112 10112 - + 310  00112  (συμπλ ως προς ένα) 11002 - 710 κρατούμενο : 1 01112 + 1 10002 = -710 Χατζηγεωργίου Αλέξανδρος: Παραδείγματα Αφαίρεσης

  27. Αριθμητική Συμπληρώματος του δύο Χατζηγεωργίου Αλέξανδρος: • Οι αριθμητικές πράξεις υλοποιούνται ευκολότερα • Το πιο σημαντικό bit (ΜSB) χρησιμοποιείται για τον προσδιορισμό του προσήμου • Όταν MSB = 0, τότε ο αριθμός είναι θετικός ή μηδένκαι το μέτρο δίνεται από τα υπόλοιπα (n-1) ψηφία του αριθμού • Όταν ΜSB = 1, ο αριθμός είναι αρνητικός και το μέτρο του αριθμού δίνεται από το συμπλήρωμα ως προς 2 του συνόλου των ψηφίων του αριθμού • To συμπλήρωμα ως προς 2 βρίσκεται αλλάζοντας όλα τα δυφία (0 σε 1 και 1 σε 0) και προσθέτοντας 1 στο αποτέλεσμα • για n=6bits, Χ10 = +17 => • Χ2= 010001

  28. Αρνητικοί Αριθμοί Χατζηγεωργίου Αλέξανδρος: • για n=6bits, Χ10 = - 17 => • Χ2= 101111 Εύρεση συμπληρώματος ως προς 2 του αριθμού 17 : Χ = 17 -> 010001 101110 (Αντιστροφή όλων των bit) 101111 (Προσθήκη του 1)

  29. Παράσταση συμπληρώματος ως προς δύο 0000 0 0001 +1 0010 +2 0011 +3 0100 +4 0101 +5 0110 +6 0111 +7 1000 -8 1001 -7 1010 -6 1011 -5 1100 -4 1101 -3 1110 -2 1111 -1 Χατζηγεωργίου Αλέξανδρος: Παράσταση ακεραίων τιμών Στην γενική περίπτωση αναπαριστώνται οι [-2n-1, +2n-1-1 ] (Π.χ στην C ενας int λαμβάνει τιμές από [-32768, 32767 ] Άρα: Αν το MSB είναι 1 τότε πρόκειται για αρνητικό αριθμό Το κατεξοχήν αριθμητικό σύστημα που χρησιμοποιείται στους υπολογιστές

  30. Παράσταση συμπληρώματος ως προς δύο Χατζηγεωργίου Αλέξανδρος: Παράσταση κλασματικών τιμών Η υποδιαστολή θεωρείται ότι βρίσκεται αμέσως μετά το περισσότερο σημαντικό δυφίο Αν μία ακολουθία αρχίζει από 0 πρόκειται για θετικό αριθμό, αλλιώς για αρνητικό. Οι θετικές ακολουθίες παριστάνουν τους ίδιους αριθμούς με το σύστημα πρόσημο και μέτρο. Οι αρνητικές διαφέρουν 0000 + .000 0001 + .125 (2-3) 0010 + .250 (2-2) 0011 + .375 0100 0101 0110 0111 + .875 1000 - 1.0 1001 - 0.875 1010 1011 1100 1101 1110 1111 - .125

  31. Αριθμητική Συμπληρώματος του 2 - 12 110100 +17 010001 ----- --------- +5 000101 - 12 110100 - 17 101111 ----- --------- - 29 100011 Αγνοείται το κρατούμενο 1 Αγνοείται το κρατούμενο 1 Χατζηγεωργίου Αλέξανδρος: • Το αλγεβρικό άθροισμα δύο αριθμών στην παράσταση συμπληρώματος του 2, προκύπτει ως το δυαδικό άθροισμα των δύο αριθμών, αγνοώντας το τυχόν κρατούμενο +12 001100 +17 010001 ----- --------- 29 011101 +12 001100 -17 101111 ----- --------- -5 111011

  32. Παράσταση συμπληρώματος ως προς δύο Χατζηγεωργίου Αλέξανδρος: Αριθμητικές πράξεις Το υλικό των υπολογιστών διαθέτει ένα κύκλωμα αθροιστή που χρησιμοποιείται τόσο για την πρόσθεση όσο και για την αφαίρεση Αλγόριθμος αφαίρεσης βρες το συμπλήρωμα του αφαιρετέου ως προς 2 ; πρόσθεσε το συμπλήρωμα στο μειωτέο ; // αγνοείται το τελικό κρατούμενο αν υπάρχει

  33. Παράσταση συμπληρώματος ως προς δύο - 810  10002 10002 - + - 610  10102  (συμπλ ως προς δύο) 01102 - 210 11102 - 210  11102 11102 - + 310  00112  (συμπλ ως προς δύο) 11012 - 510 κρατούμενο (αγν) : 1 10112 Χατζηγεωργίου Αλέξανδρος: Παραδείγματα Αφαίρεσης

  34. Πολλαπλασιασμός - Διαίρεση Β Α πολλαπλασιαστής Υ πολλαπλασιαστέος Χατζηγεωργίου Αλέξανδρος: • Κάθε υπολογιστής εκτός από τον συσσωρευτή Α διαθέτει έναν επιπρόσθετο καταχωρητή Β που θεωρείται ως επέκταση του Α • Οι καταχωρητές Β και Α μπορούν να θεωρηθούν ως ένας διπλού μήκους καταχωρητής • Αλγόριθμος Πολλαπλασιασμού : • Αρχικά ο πολλαπλασιαστής φορτώνεται στο συσσωρευτή Α και ο πολλαπλασιαστέος σε ένα βοηθητικό καταχωρητή Υ :

  35. Πολλαπλασιασμός - Διαίρεση Χατζηγεωργίου Αλέξανδρος: Για πολ/στέο > 0 και πολ/στη > 0 {Β} = 0 for(i=1;i<=n;i++) { if LSB(πολ/στη) == 1 then πρόσθεσε τον πολ/στέο στο MS μέρος του γινομένου {B}; shift_right {BA} }

  36. Πολλαπλασιασμός - Διαίρεση Χατζηγεωργίου Αλέξανδρος: 510x 610 = 3010 Y = 0110 B A 1.0000 0101 (αρχικά: φόρτωση πολ/στη στο Α) 2. 0110 0101 (LSB{A} = 1 άρα προσθ Υ στο {Β} ) 0011 0010 (shift left {BA} ) i=1 3. 0001 1001 i=2 4. 0111 1001 0011 1100 i=3 5. 0001 1110 i=4 (00011110)2 = (30)10 Παράδειγμα για n=3 bits: 310x 410 (A = 011, Y = 100)

  37. Πολλαπλασιασμός - Διαίρεση Χατζηγεωργίου Αλέξανδρος: • Διαίρεση (Θεωρούμε μόνο θετικούς ακεραίους για απλότητα) • Στο {ΒΑ} φορτώνεται ο διαιρετέος • Στον Υ φορτώνεται ο διαιρέτης • Όταν τελειώσει η διαίρεση : πηλίκο στον Α, υπόλ. στον Β • for(i=1;i<=n;i++) • { • shift left {BA} • if (διαιρέτης <= Β) then • { • πρόσθεσε συμπλήρωμα ως προς 2 του διαιρέτη στο Β • κάνε το LSB του Α ίσο με 1 • } • }

  38. Πολλαπλασιασμός - Διαίρεση Χατζηγεωργίου Αλέξανδρος: Διαίρεση 710 / 210 πηλίκο = 310 υπόλοιπο = 110 Y = 0010, Y’ = 1110 Β Α 0000 0111 αρχικά {BA} = διαιρέτης 0000 1110 shift left i=1 0001 1100 shift left i=2 0011 1000 shift left + 1110 (διαιρέτης <=Β) 0001 1001 i=3 0011 0010shift left + 1110 (διαιρέτης <=Β) 0001 0011i=4 υπόλοιπο πηλίκο Παράδειγμα για n=5 : Διαίρεση 10 / 4

More Related