στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110 Γεωπονικό Πανεπιστήμιο Αθηνών Γενικό Τμήμα Εργαστήριο Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Κωδικός Μαθήματος: 2895 Κωδικός Διαφανειών: MKT110 Καθηγητής Νίκος Λορέντζος
2. Αριθμητική Η/Υ Γεωπονικό Πανεπιστήμιο Αθηνών Γενικό Τμήμα Εργαστήριο Πληροφορικής 2. Αριθμητική Η/Υ Καθηγητής Νίκος Λορέντζος
Συστήματα Αρίθμησης Δεκαδικό 0, 1, 2, …, 8, 9 Δυαδικό 0, 1 Δεκαδικό 0, 1, 2, …, 8, 9 Δυαδικό 0, 1 Τριαδικό 0, 1, 2 Οκταδικό 0, 1, 2, …, 7 Δεκαεξαδικό 0, 1, 2, …, 8, 9, A, B, C, D, E, F 10, 11, 12, 13, 14, 15
Υλοποίηση Δυαδικών Ψηφίων Ηλεκτρική - Ηλεκτρονικά κυκλώματα - διέλευση ρεύματος Μαγνητική - Δευτερεύουσες μνήμες - μαγνητισμένο υλικό Οπτική - Ραβδωτός κώδικας - πάχος γραμμών
Κωδικοί Χωρών στο Ραβδωτό Κώδικα 520 ΕΛΛΑΔΑ 529 ΚΥΠΡΟΣ 40, 41, 42, 43, 44 ΓΕΡΜΑΝΙΑ 64 ΦΙΝΛΑΝΔΙΑ 87 ΟΛΛΑΝΔΙΑ 90, 91 ΑΥΣΤΡΙΑ 531 FYROM 869 ΤΟΥΡΚΙΑ Made in Greece 5
Ακέραιοι >= 0 Δεκαδικό Σύστημα Αρίθμησης 57032 = (10) 2*10 3*10 1 + 0*10 2 7*10 3 5*10 4 104 103 102 101 100 10000 1000 10 1 5 7 3 2
Ακέραιοι >= 0 Δυαδικό Σύστημα Αρίθμησης 1011001 (2) = 1*2 0*2 1 + 2 3 4 5 6 ( ) (10) = ) 64 + 0 + 16 + 8 + 0 + 0 + 1 ( (10) = 89 (10) 26 25 24 23 22 21 20 64 32 16 8 4 2 1 64 + 16+8 + 1 = 89 Μετατροπή από 2-κο στο 10-κο
Δύτιμες Θέσεις Δύτιμη Θέση (δθ) ή Ψηφιοθέση (Binary Item ή Bit): Θέση στην οποία, για το 2-κο σύστημα, μπορούμε να καταχωρίσουμε αποκλειστικά το 0 ή το 1. 1
2-κο Σύστημα: Μερικοί Δυαδικοί Αριθμοί 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 δθ: 9
Ακέραιοι >= 0 Μετατροπή από 10-κο στο 2-κο 89 44 1 22 11 5 89 = (10) 1011001 (2) 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 1 1 1 1 n = 89 25 9 1 10
Ακέραιοι >= 0 m-κο Σύστημα Αρίθμησης Παράσταση αριθμού … Μετατροπή από m-κο στο 10-κο … Μετατροπή από 10-κο στο m-κο … … διαδικασία η ίδια, όπως και για το 2-κο Παραδείγματα 2*33 = ( 2102(3) + 1*32 0*31 2*30 )(10) (2*83 = 2736(8) + 7*82 3*81 6*80 )(10)
Ακέραιοι >= 0 m-κο Σύστημα Αρίθμησης Παραδείγματα A(16) = 10(10) B(16) = 11(10) C(16) = 12(10) D(16) = 13(10) E(16) = 14(10) F(16) = 15(10) 2*163 = ( 2B3F(16) + 11*162 3*161 15*160 )(10)
Ακέραιοι >= 0 Μετατροπή μεταξύ 2-κου και 8-κου 8 = 23 2-κο: 1 111 010 000 100 001 8-κο: 7 2 4
Ακέραιοι >= 0 Μετατροπή μεταξύ 2-κου και 16-κου 16 = 24 A(16) = 10(10) B(16) = 11(10) C(16) = 12(10) D(16) = 13(10) E(16) = 14(10) F(16) = 15(10) 2-κο: 10 1101 0000 1111 0100 0010 16-κο: 2 D F 4
Ακέραιοι >= 0 Μετατροπή μεταξύ 8-κου και 16-κου 8 = 23 , 16 = 24 A(16) = 10(10) B(16) = 11(10) C(16) = 12(10) D(16) = 13(10) E(16) = 14(10) F(16) = 15(10) 8κο: 5 4 2 3 7 2-κο: 101 100 000 010 011 111 2-κο: 10 1100 0000 1001 1111 16-κο: 2 C 9 F 00
2-κο Σύστημα: Παράσταση Ακεραίων >= 0 Πλήθος δθ: n 1 2 2 4 1 3 3 8 1 2 4 5 6 7 4 16 1 2 3 5 6 7 8 9 10 11 12 13 14 15 Πλήθος αριθμών: 2 n -1 Ελάχιστος: 0 Μέγιστος: 2
2-κο Σύστημα: Παράσταση Αρνητικών Ακεραίων Παράδειγμα για n = 4 θέσεις πλήθος δθ: 4 πλήθος τιμών >=0: 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Χρησιμοποιούσαμε τις 16 διαθέσιμες θέσεις για να απεικονίζουμε μόνο ακεραίους >=0. Τώρα θέλουμε σε αυτές τις θέσεις να απεικονίζουμε και αρνητικούς ακεραίους. Άρα: πλήθος αριθμών >= 0: 8 ( 0 ως 7) πλήθος αριθμών < 0: 8 (-8 ως -1)
2-κο Σύστημα: Παράσταση Αρνητικών Ακεραίων Παράδειγμα για n = 4 δθ 3 2 1 4 5 6 7 8 9 10 11 12 13 14 15 Πριν 3 2 1 4 5 6 7 - 8 -7 -6 -5 -4 -3 -2 -1 8 1 7 6 5 4 3 2 Τώρα Παράσταση αρνητικού (Σε n = 4 δθ, μπορούν να παρασταθούν 8 αρνητικοί, οι -1, -2, … -8.) Β1. Για έναν αρνητικό στο 2-κο σύστημα γράφουμε τον αντίστοιχο >= 0 (έναν από τους 1, 2, …, 8). Β2. Χρησιμοποιούμε τη μέθοδο Συμπλήρωμα του 2. Πρόσημο ( 0: >=0, 1: <0)
2-κο Σύστημα: Παράσταση Ακεραίων Παράδειγμα για n = 4 δθ πλήθος δθ: 4 πλήθος αριθμών: 16 πλήθος αριθμών >= 0: 8 ( 0 ως 7) πλήθος αριθμών < 0: 8 (-8 ως -1) Γενίκευση για n θέσεις πλήθος δθ: n πλήθος τιμών: 2 πλήθος αριθμών >= 0: 2 πλήθος αριθμών < 0: 2 n n-1 n-1 ( 0 ως 2 -1) n-1 n-1 ( -2 ως -1)
Απεικόνιση Αριθμών Πλήθος δθ διαφ/κών αριθμών Πλήθος Αριθμών Αριθμοί >= 0 Αριθμοί < 0 >=0 <0 Ελάχ. Μέγ. n n-1 2 (1) (2) (3)=(2)/2 (4)=(2)/2 (3)-1 -(4) -1 4 16 8 7 -8 65.536 32.768 32.767 -32.768 32 4.294.967.296 2.147.483.648 2.147.483.647 -2.147.483.648 64 18.446.744.073. 709.551.616 (18 πεντάκις+) 9.223.372.036. 854.775.808 (9 πεντάκις+) 9.223.372.035. 854.775.807 -9.223.372.036.
Πράξεις στο 2-κο Σύστημα 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 10 0 - 0 = 0, 1 - 1 = 0, 1 - 0 = 1, 10 - 1 = 1 0 * 0 = 0, 0 * 1 = 0, 1 * 0 = 0, 1 * 1 = 1 1 : 1 = 1, 0 : 1 = 0
Πρόσθεση Δυαδικών Αριθμών 128 64 32 16 8 4 2 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 Κρατούμενο
Πρόσθεση Δυαδικών Αριθμών 8 4 2 1 1 1 1 1 1 1 1 1 1 Κρατούμενο
Αφαίρεση Δυαδικών Αριθμών 64 32 16 8 4 2 1 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 Κρατούμενο 1 1 1
2-κο Σύστημα: Αδυναμία Απεικόνισης όλων των Ακεραίων πλήθος δθ: n πλήθος τιμών: 2 πλήθος αριθμών >= 0: 2 πλήθος αριθμών < 0: 2 n n-1 ( 0 ως 2 -1) ( -2 ως -1) Ακέραιοι μικρότεροι του ελάχιστου αρνητικού ακέραιου ή μεγαλύτεροι του μέγιστου θετικού ακέραιου δεν μπορούν να απεικονισθούν. (υπερχείλιση, υπεκχείλιση). Ως εκ τούτου, στους Η/Υ πολύ μεγάλοι ή πολύ μικροί ακέραιοι προσεγγίζονται από πραγματικούς αριθμούς.
Παράσταση Πραγματικών Αριθμών Σε ένα αριθμητικό σύστημα με βάση το B, κάθε αριθμός x μπορεί να προσεγγισθεί από μια έκφραση της μορφής όπου - r πραγματικός αριθμός και - α ακέραιος αριθμός (με το πρόσημό του) του Β-κου συστήματος. r*Bα + - Παραδείγματα στο 10-κο Σύστημα Ο 325.0 μπορεί να γραφεί ως 325.0x100, 32.5x101, 3.25x102, 0.325x103 , 0.0325x104 , … 3250.0x10-1, 32500.0x10-2 , … Ο -325.0 μπορεί να γραφεί ως -325.0x100, -32.5x101, -3.25x102, -0.325x103 , -0.0325x104, … -3250.0x10-1, -32500.0x10-2, … Ο -0.00325 μπορεί να γραφεί ως -325.0x10-5, -32.5x10-4, -3.25x10-3, -0.325x10-2 , -0.0325x10-1 …
2. Παράσταση πραγματικών αριθμών με μέθοδο Κινητής Υποδιαστολής Κανονικοποίηση: Η διαδικασία με την οποία ένας x αριθμός προσεγγίζεται με μια παράσταση της μορφής 0.ψ1ψ2 … ψm*Bα όπου - Β είναι η βάση του αριθμητικού συστήματος - ψ1 είναι το πρώτο σημαντικό ψηφίο του αριθμού και - α είναι ένας ακέραιος. + - Σημείωση: Αν το m είναι σταθερό, ο αριθμός προσεγγίζεται. Παραδείγματα Αν m = 6 τότε - 20/6 = 2.3333333333… ≈ 0.233333*101 - π = 3.14159 26535 89793 23846 26433 … ≈ 0.314159*101
Τρόποι Παράστασης Πραγματικών Αριθμών Παράσταση με μέθοδο Σταθερής Υποδιαστολής 2. Παράσταση με μέθοδο Κινητής Υποδιαστολής
με μέθοδο Σταθερής Υποδιαστολής 1. Παράσταση πραγματικών αριθμών με μέθοδο Σταθερής Υποδιαστολής Μειονέκτημα: Μεγάλη απώλεια ακρίβειας - στην αποθήκευση, - στο αποτέλεσμα που προκύπτει μετά από την εκτέλεση πολλών πράξεων.
2. Παράσταση πραγματικών αριθμών με μέθοδο Κινητής Υποδιαστολής Πρώτο σημαντικό ψηφίο αριθμού: Το αριστερότερο μη μηδενικό ψηφίο του αριθμού. Παραδείγματα στο 10-κο σύστημα 2 6 . 5 8 (10) 2 . 6 5 8 (10) 0 . 2 6 5 8 (10) - 0 . 0 2 6 5 8 (10) - 0 . 0 0 2 6 5 8 (10) 30
2. Παράσταση πραγματικών αριθμών με μέθοδο Κινητής Υποδιαστολής Κανονικοποίηση: Η διαδικασία με την οποία ένας x αριθμός προσεγγίζεται με μια παράσταση της μορφής 0.ψ1ψ2 … ψm*Bα όπου - Β είναι η βάση του αριθμητικού συστήματος - ψ1 είναι το πρώτο σημαντικό ψηφίο του αριθμού και - α είναι ένας ακέραιος. + - (r = 0.ψ1ψ2 … ψm) Παραδείγματα στο 10-κο σύστημα 2 6 . 5 8 (10) = 0.2658*102(10) 2 . 6 5 8 (10) = 0.2658*101(10) 0 . 2 6 5 8 (10) = 0.2658*100(10) - 0 . 0 2 6 5 8 (10) = -0.2658*10-1(10) - 0 . 0 0 2 6 5 8 (10) = 0.2658*10-2(10)
2. Παράσταση πραγματικών αριθμών με μέθοδο Κινητής Υποδιαστολής Πρώτο σημαντικό ψηφίο αριθμού: Το αριστερότερο μη μηδενικό ψηφίο του αριθμού. Παραδείγματα στο 2-κο σύστημα 1 0 . 1 1 (2) 1 . 0 1 1 (2) 0 . 1 0 1 1 (2) - 0 . 0 1 0 1 1 (2) - 0 . 0 0 1 0 1 1 (2) 32
2. Παράσταση πραγματικών αριθμών με μέθοδο Κινητής Υποδιαστολής Κανονικοποίηση: Η διαδικασία με την οποία ένας x αριθμός προσεγγίζεται με μια παράσταση της μορφής 0.ψ1ψ2 … ψm*Bα όπου - Β είναι η βάση του αριθμητικού συστήματος - ψ1 είναι το πρώτο σημαντικό ψηφίο του αριθμού και - α είναι ένας ακέραιος. + - Παραδείγματα στο 2-κο σύστημα 1 0 . 1 1 (2) = 0.1011*1010(2) 1 . 0 1 1 (2) = 0.1011*101(2) 0 . 1 0 1 1 (2) = 0.1011*100(2) - 0 . 0 1 0 1 1 (2) = -0.1011*10-1(2) - 0 . 0 0 1 0 1 1 (2) = 0.1011*10-10(2) Προσοχή Τώρα η βάση είναι Β = 10(2) = 2(10) Τώρα οι εκθέτες είναι στο 2-κο Οι αρνητικοί εκθέτες πρέπει κανονικά να γραφούν με τη μέθοδο Συμπλήρωμα του 2.
2. Παράσταση πραγματικών αριθμών με μέθοδο Κινητής Υποδιαστολής Αποθήκευση Πραγματικού Αριθμού Βήμα 1: Ο αριθμός κανονικοποιείται, δηλαδή έρχεται στη μορφή 0.ψ1ψ2 … ψm*Bα όπου ψ1 είναι το πρώτο σημαντικό ψηφίο. (Κανονικοποίηση) + - Βήμα 2: Αποθηκεύονται στον Η/Υ - το δεκαδικό μέρος ψ1ψ1 … ψm και - ο εκθέτης του αριθμού, με το πρόσημό τους.
Παράσταση Αριθμού με Κινητή Υποδιαστολή στο Δυαδικό Σύστημα 15 14 13 12 11 9 8 7 6 5 4 3 2 1 1 1 εκθέτης δεκαδικό μέρος Παράδειγμα (010000.1)2 = (Ο αριθμός 16.5(10)) (0.100001*10101)(2) (Ο αριθμός ((33/64)*25) (10)) δεκαδικό μέρος = (100001)2 με πρόσημο + εκθέτης = (101)2 με πρόσημο +
Παράσταση Αριθμού με Κινητή Υποδιαστολή στο Δυαδικό Σύστημα Παρατηρήσεις Σε μια άλλη κανονικοποίηση, ο αριθμός μετατρέπεται στη μορφή ψ1 . ψ2 ψ3 ψ … ψm ψ*Bα όπου ψ1 είναι το πρώτο σημαντικό ψηφίο . Ο εκθέτης αποθηκεύεται με διαφορετικό τρόπο από αυτόν που έχει περιγραφεί.
Αδυναμία Αποθήκευσης όλων των Πραγματικών Αριθμών Πραγματικοί αριθμοί - μικρότεροι του ελάχιστου υποστηριζόμενου αρνητικού ή μεγαλύτεροι του μέγιστου υποστηριζόμενου θετικού δεν μπορούν να αποθηκευθούν. (υπερχείλιση, υπεκχείλιση). - με ακρίβεια μεγαλύτερη από εκείνη που υποστηρίζει ο Η/Υ, αποθηκεύονται κατά προσέγγιση.
Απώλεια Ακρίβειας Τύπος: ψψψψ.ψψ Αριθμός: 235.5628 235.5678 Μέθοδος Αποκοπής: Αγνοούνται τα ψηφία που περισσεύουν. Αποθήκευση: 235.56 235.56 Μέθοδος Στρογγύλευσης: Ο αριθμός στρογγυλεύεται στον πλησιέστερο αριθμό που μπορεί να αποθηκευθεί. Αποθήκευση: 235.56 235.57
Απεικόνιση Χαρακτήρων (Κωδικοποίηση) Κώδικας EBCDIC (επέκταση του 2-κου για αριθμούς) Κώδικας ASCII Κώδικας UNICODE
Κώδικας ASCII-7 Αρχικά, χρησιμοποιήθηκαν n = 7 δθ, για την απεικόνιση συνολικά x = 27 = 128 χαρακτήρων.
Κώδικας ASCII-7 2-κο 10-κο 16-κο Χαρακτήρας 110 0001 97 61 a 110 0010 110 0001 97 61 a 110 0010 98 62 b 110 0011 99 63 c 110 0100 100 64 d 110 0101 101 65 e 110 0110 102 66 f 110 0111 103 67 g 110 1000 104 68 h 110 1001 105 69 i 110 1010 106 6A j
Κώδικας ASCII-7 2-κο 10-κο 16-κο Χαρακτήρας 011 0000 48 30 011 0001 49 011 0000 48 30 011 0001 49 31 1 011 0010 50 32 2 011 0011 51 33 3 011 0100 52 34 4 011 0101 53 35 5 011 0110 54 36 6 011 0111 55 37 7 011 1000 56 38 8 011 1001 57 39 9
Διάγνωση Λαθών στη Μετάδοση Δεδομένων Χαρ/ρας Τρόπος Αποθήκευσης (ASCII-7) Τρόπος Αποστολής Τρόπος Αποθήκευσης αν σωστή λήψη a b c d 1 2 3 1 1 1 Δύτιμη Θέση Ισοτιμίας (Parity Bit) Άρτια ισοτιμία: Το πλήθος των 1 σε κάθε γραμμή είναι άρτιος αριθμός.
Διάγνωση Λαθών στη Μετάδοση Δεδομένων Χαρ/ρας Τρόπος Αποθήκευσης (ASCII-7) Τρόπος Αποστολής Τρόπος Αποθήκευσης αν σωστή λήψη a b c d 1 2 3 1 1 1 Δύτιμη Θέση Ισοτιμίας (Parity Bit) Περιττή ισοτιμία: Το πλήθος των 1 σε κάθε γραμμή είναι περιττός αριθμός.
Κώδικας ASCII-8 Τελικά, χρησιμοποιήθηκαν n=8 δθ, για την απεικόνιση συνολικά x= 28 = 256 χαρακτήρων.
Κώδικας Unicode Καθιερωμένο Πρότυπο Αλφαριθμητικός κώδικας 16 δύτιμων θέσεων, για διεθνή σύνολα χαρακτήρων. Άρα, υποστηρίζει 216 = 65.536 διαφορετικούς χαρακτήρες. Οι ASCII χαρακτήρες αντιστοιχούν στις τιμές 0000(16) έως 007B(16) του Unicode. Με τη βοήθεια προγραμματιστικών τεχνικών μπορούν να απεικονισθούν πάνω από 1.000.000 χαρακτήρες.
Χρήση Unicode στο Word Α’ Τρόπος: Εύρεση του χαρακτήρα από Πίνακα Χαρακτήρων. Β’ Τρόπος: Οι επεξεργαστές κειμένου Microsoft Word επιτρέπουν την εισαγωγή χαρακτήρων Unicode ως εξής: 1. Πληκτρολόγη, για παράδειγμα, του 014Β (ή του U+014b). 2. Πάτημα Alt + x. Τότε η συμβολοσειρά στα αριστερά του δρομέα αντικαθίσταται από τον αντίστοιχο χαρακτήρα Unicode. Συνήθως γίνεται και το αντίστροφο: Αν ο χαρακτήρας Unicode είναι αριστερά του δρομέα και πατηθεί Alt + x το Word αντικαθιστά τον χαρακτήρα από τον αντίστοιχο κωδικό του, στο 16-κο σύστημα.
Δύτιμες Θέσεις Δύτιμη Θέση (δθ) ή Ψηφιοθέση (Binary Item ή Bit) Ψηφιολέξη (8 δθ) (Byte) 7 6 5 4 3 2 1 1
Κωδικοποίηση Χαρακτήρων ASCII-7 (7 δθ): 27 = 128 χαρακτήρες ASCII-8 (8 δθ): 28 = 256 χαρακτήρες UNICODE (16 δθ): 216 = 65.536 χαρακτήρες
Απεικόνιση Ακεραίων Αριθμών Μικροί (n= 8 δθ) x = 28 διαφορετικοί αριθμοί Τιμές: από -128 μέχρι 127 Συνήθεις (n= 16 δθ) x = 216 διαφορετικοί αριθμοί Τιμές: από -32.768 μέχρι 32.767 Μεγάλοι (n= 32 δθ) x = 232 διαφορετικοί αριθμοί Τιμές: από -2.147.483.648 μέχρι 2.147.483.647
Απεικόνιση Πραγματικών Αριθμών Απλής Aκρίβειας (32 δθ) Τιμές: από -3,402823 x 1038 μέχρι +3,402823 x 1038 Διπλής Aκρίβειας (64 δθ) Τιμές: από -1,79769313486232 x 10308 μέχρι 1,79769313486232 x 10308
Άσκηση Θέλουμε να κωδικοποιήσουμε 256 διαφορετικά μηνύματα στο 2-κο σύστημα. Πόσες δθ χρειαζόμαστε κατ’ ελάχιστο; Σε n δθ μπορούμε να απεικονίσουμε x = 2n διαφορετικούς χαρακτήρες. Παρατηρούμε ότι αν n = 0 τότε x = 20 = 1 < 256 n = 1 τότε x = 21 = 2 < 256 n = 2 τότε x = 22 = 4 < 256 n = 3 τότε x = 23 = 8 < 256 n = 4 τότε x = 24 = 16 < 256 n = 5 τότε x = 25 = 32 < 256 n = 6 τότε x = 26 = 64 < 256 n = 7 τότε x = 27 = 128 < 256 n = 8 τότε x = 28 = 256 Άρα, χρειαζόμαστε 8 δθ.
Άσκηση Θέλουμε να κωδικοποιήσουμε 120 διαφορετικα μηνύματα στο 2-κο σύστημα. Πόσες δθ χρειαζόμαστε κατ’ ελάχιστο; Σε n δθ μπορούμε να απεικονίσουμε x = 2n διαφορετικούς χαρακτήρες. Παρατηρούμε ότι αν n = 0 τότε x = 20 = 1 < 120 n = 1 τότε x = 21 = 2 < 120 n = 2 τότε x = 22 = 4 < 120 n = 3 τότε x = 23 = 8 < 120 n = 4 τότε x = 24 = 16 < 120 n = 5 τότε x = 25 = 32 < 120 n = 6 τότε x = 26 = 64 < 120 n = 7 τότε x = 27 = 128 > 120 Άρα, χρειαζόμαστε 7 δθ.