ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 1
2. ΑΡΙΘΜΗΤΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΜΕΡΟΣ Α 2
Τεχνολογία της Πληροφορίας 3
Υπολογιστικό σύστημα Κάθε υπολογιστικό σύστημα αποτελείται από το υλικό (hardware) και το λογισμικό (software) Υλικό: σύνολο των συσκευών που απαρτίζουν το υπολογιστικό σύστημα Λογισμικό: σύνολο των προγραμμάτων που μπορούν να εκτελεσθούν από το υπολογιστικό σύστημα Υπολογιστικό Σύστημα Υλικό Επεξεργαστής, Μνήμες, Δίσκοι, Εκτυπωτές, Οθόνη, Πληκτρολόγιο, Άλλες συσκευές... Λογισμικό Λογισμικό συστήματος, Λογισμικό εφαρμογών 4
Ιεραρχική οργάνωση των υπολογιστικών συστημάτων 6 5 4 3 2 Επίπεδο προγραμμάτων εφαρμογής (π.χ. Επεξεργαστές κειμένου, Πλοηγοί Ιστού, ΒΔ) Επίπεδο γλωσσών προγραμματισμού υψηλού επιπέδου (π.χ. C, C++, Java) Επίπεδο λειτουργικού συστήματος (Έλεγχος εκτέλεσης προγράμματος, Έλεγχος λειτουργιών Εισόδου/Εξόδου) Επίπεδο γλώσσας μηχανής (Ανάκληση εκτέλεση γλώσσας μηχανής) Επίπεδο μικρολειτουργιών (Μικρολειτουργίες, Μικροπρογραμματισμός) Επίπεδο πυλών (Καταχωρητές, Μνήμες, Ελεγκτές) 1 5
Τεχνολογία της Πληροφορίας Αριθμητικά συστήματα αναπαράστασης Παράσταση προσημασμένων αριθμών Λογική σχεδίαση Αρχιτεκτονική Η/Υ Γλώσσες προγραμματισμού Αναπαράσταση Επεξεργασία Πληροφορία Ιεραρχία μνήμης Φυσικά μέσα αποθήκευσης Συστήματα αρχείων Βάσεις δεδομένων Αποθήκευση Μετάδοση Δίκτυα υπολογιστών Διαστρωμάτωση πρωτοκόλλων επικοινωνίας 6
Μονάδες πληροφορίας Στο σύνολο των σύγχρονων υπολογιστών η βασική μονάδα πληροφορίας είναι το δυαδικό ψηφίο (binary digit, bit) Για την παράστασή της χρησιμοποιούνται δίτιμα στοιχεία (transistors, μαγνητικοί δακτύλιοι, κτλ.) Η μνήμη κάθε υπολογιστή είναι οργανωμένη σε λέξεις (words), δηλαδή ομάδες των n bits. Το μήκος n κάθε λέξης καθορίζεται από οικονομικούς και τεχνολογικούς παράγοντες. 7
Τύποι πληροφοριών Πληροφορίες Εντολές Δεδομένα Διευθύνσεις Αριθμοί Χαρακτήρες Άλλα δυαδικά δεδομένα Σταθερής υποδιαστολής Κινητής υποδιαστολής 8
Αριθμητικά Συστήματα Μετατροπές 9
Αριθμητικά Συστήματα Κάθε αριθμός Ν μπορεί να γραφεί με τη μορφή ακέραιο μέρος κλασματικό μέρος όπου β η βάση του αριθμητικού συστήματος στην οποία εκφράζεται ο αριθμός α i τα ψηφία του αριθμού, με 0 α i <β m το πλήθος ψηφίων του ακέραιου μέρους n το πλήθος ψηφίων του κλασματικού μέρους 10
Αριθμητικά Συστήματα - Παράδειγμα Ο δεκαδικός αριθμός 12,624 γράφεται ως 1 10 1 + 2 10 0 + 6 10-1 + 2 10-2 + 4 10-3 δηλαδή α 1 = 1, α 0 = 2, α -1 = 6, α -2 = 2, α -3 = 4 Ο δεκαδικός αριθμός 13 γράφεται στο δυαδικό σύστημα ως 1101 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 8+4+0+1 = 13 Το πιο αριστερό ψηφίο του αριθμού ονομάζεται MSB (Most Significant Bit) γιατί πολλαπλασιάζεται με το μεγαλύτερο συντελεστή Το δεξιότερο ψηφίο του αριθμού ονομάζεται LSB (Least Significant Bit) γιατί πολλαπλασιάζεται με το χαμηλότερο συντελεστή 11
Πλήθος αναπαριστώμενων αριθμών Ένα αριθμητικό σύστημα με βάση β χρειάζεται β διαφορετικά ψηφία που παίρνουν τιμές από 0 έως β-1 Ερ.: Πόσες διαφορετικές τιμές μπορεί να πάρει ένας φυσικός αριθμός με m ψηφία στο σύστημα αυτό; Απ.: Μπορεί να πάρει β m διαφορετικές τιμές, από 0 έως β m -1 12
Επιλογή συστήματος Όπως είδαμε, σε ένα αριθμητικό σύστημα με βάση β στο οποίο διατίθενται m ψηφία υπάρχει η δυνατότητα για την παράσταση βm αριθμών Δεδομένου ότι για κάθε ψηφίο απαιτούνται β σύμβολα ο δείκτης Ε = m.β ορίζει ένα μέτρο για την «αποτελεσματικότητα» της αποθήκευσης. Έτσι προκύπτει το πρόβλημα της ελαχιστοποίησης του Ε, με τον περιορισμό ότι το πλήθος Α των αριθμών που μπορούν να αναπαρασταθούν είναι σταθερό δηλαδή Α = βm = σταθερό Έτσι έχουμε m = lna/lnβ και αντικαθιστώντας στον ορισμό του Ε παίρνουμε Ε = βlna/lnβ Παραγωγίζοντας την προηγούμενη σχέση καταλήγουμε εύκολα στο συμπέρασμα ότι η αποτελεσματικότητα Ε παίρνει την ελάχιστη τιμή όταν β=e=2.17 Δεδομένου ότι β ακέραιος, συμπεραίνουμε ότι η βάση β=3 οδηγεί σε ελαφρώς αποτελεσματικότερη αποθήκευση από ό,τι η βάση β=2 (3/ln3 < 2/ln2) Για τεχνολογικούς λόγους όμως, καθώς υπάρχουν εύκολα υλοποιήσιμα στοιχεία δύο καταστάσεων, έχει επικρατήσει το δυαδικό σύστημα σε όλα σχεδόν τα υπολογιστικά συστήματα 13
Συνηθέστερα αριθμητικά συστήματα Δεκαδικό σύστημα (β=10) Δυαδικό σύστημα (β=2) Οκταδικό σύστημα (β=8) Δεκαεξαδικό σύστημα (β=16) 0 5 0 0 4 0 8 1 6 1 1 5 1 9 2 7 2 6 2 Α 3 8 3 7 3 Β 4 9 4 C 5 D 6 E 7 F 426 (10) = 426D = 4*10 2 + 2*10 1 + 6*10 0 426 (8) = 426O = 4*8 2 + 2*8 1 + 6*8 0 = 278 (10) 426 (16) = 426H = 0x426 = 4*16 2 + 2*16 1 + 6*16 0 = 1062 (10) 14
Μετατροπή αριθμών από ένα σύστημα στο δεκαδικό Η μετατροπή ενός αριθμού από ένα αριθμητικό σύστημα με βάση β στο δεκαδικό σύστημα είναι, όπως είδαμε πολύ απλή, καθώς υπολογίζουμε την τιμή της παράστασης 11001 (2) = 1 2 4 + 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 = 25 (10) 112,32 (8) = 1 8 2 + 1 8 1 + 2 8 0 + 3 8-1 + 2 8-2 = 72,40625 (10) 15
Μετατροπή αριθμών από το δεκαδικό σε ένα σύστημα με βάση β Αρχή Α = Ακέραιο μέρος του Ν i = 0 α i = υπόλοιπο διαίρεσης Α/β Α = πηλίκο Μετατροπή αριθμού Ν σε σύστημα με βάση β, χρησιμοποιώντα ς m και n ψηφία για το ακέραιο και το κλασματικό μέρος αντίστοιχα Αρχή Κ = Κλασματικό μέρος του Ν i = -1 α i = ακέραιο μέρος του β * Κ Κ = κλασματικό μέρος του β * Κ i = i+1 i = i-1 ΟΧΙ i = m ΝΑΙ ΟΧΙ i = -n-1 ΝΑΙ Τέλος Τέλος 16
Παράδειγμα Θέλουμε να μετατρέψουμε τον αριθμό Ν (10) = 53,625 στο δυαδικό σύστημα Επειδή 2 5 < 53 < 2 6, το πλήθος m των ψηφίων του ακέραιου μέρους πρέπει να είναι τουλάχιστον 6 Το πλήθος n των ψηφίων του κλασματικού μέρους εξαρτάται από την ακρίβεια που επιθυμούμε Ας θεωρήσουμε εδώ m=6 και n=4 Εργαζόμαστε χωριστά πρώτα για το ακέραιο και κατόπιν για το κλασματικό μέρος 17
Παράδειγμα Ακέραιο μέρος Α Υ Χ 53 -- Διαιρούμε το 53 με το 2 26 1 1 26 -- Διαιρούμε το 26 με το 2 13 0 01 13 -- Διαιρούμε το 13 με το 2 6 1 101 6 -- Διαιρούμε το 6 με το 2 3 0 0101 3 -- Διαιρούμε το 3 με το 2 1 1 10101 1 -- Διαιρούμε το 1 με το 2 0 1 110101 0 53 (10) = 110101 (2) 18
Παράδειγμα Κλασματικό μέρος 0,625 -- Πολλαπλασιάζουμε 0,625x2=1,25 Ακέραιο μέρος = 1, Κ=0,25 0,25 -- Πολλαπλασιάζουμε 0,25x2=0,5 Ακέραιο μέρος = 0, Κ=0,5 0,5 -- Πολλαπλασιάζουμε 0,5x2=1 Ακέραιο μέρος = 1, Κ=0 0 -- Πολλαπλασιάζουμε 0x2=0 Ακέραιο μέρος = 0, Κ=0 i = -4-1 0,625 (10) = 0,1010 (2) 53,625 (10) = 110101,1010 (2) Ερ.: Τι γίνεται όταν σταματάμε τον υπολογισμό μετά από n κλασματικά ψηφία; 19
Μετατροπή από δυαδικό σε δεκαεξαδικό ή οκταδικό & αντίστροφα Πρόκειται για τις πιο εύκολες περιπτώσεις μετατροπών Από δυαδικό σε δεκαεξαδικό: Χωρίζουμε τα ψηφία σε τετράδες, ξεκινώντας από την υποδιαστολή και προχωρώντας προς τα άκρα Συμπληρώνουμε με μηδενικά αν είναι απαραίτητο 0111001011, 110101 0001 1100 1011, 1101 0100 1 C B, D 4 20
Μετατροπή από δυαδικό σε δεκαεξαδικό ή οκταδικό & αντίστροφα Από δεκαεξαδικό σε δυαδικό Αντικαθιστούμε κάθε δεκαεξαδικό ψηφίο με την αντίστοιχη τετράδα δυαδικών ψηφίων 3D8, AE 0011 1101 1000, 1010 1110 Από δυαδικό σε οκταδικό Παρόμοια με την περίπτωση δυαδικού δεκαεξαδικό, μόνο που αντί για τετράδες χωρίζουμε σε τριάδες Από οκταδικό σε δυαδικό Αντικαθιστούμε οκταδικό ψηφίο με την αντίστοιχη τριάδα δυαδικών ψηφίων 21
Πράξεις θετικών ακέραιων αριθμών στο δυαδικό σύστημα x + y = z x - y = z 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 και 1 κρατούμενο για την ανώτερη δυαδική τάξη 0-0 = 0 1-0 = 1 1-1 = 0 0-1 = 1 και δανεικό 1 από την ανώτερη δυαδική τάξη 22
Πρόσθεση/Αφαίρεση δυαδικών αριθμών x n x n-1 x i x 1 y n y n-1 y i y 1 x i y i K i-1 ή Δ i- x i + y i + K i-1 K i x i y i - Δ i- Δ i 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 23
Παραδείγματα Πρόσθεση 46 (10) + 26 (10) = 72 (10) 1 0 1 1 1 0 + + + + + + 0 1 1 0 1 0 1 0 0 1 0 0 0 24
Παραδείγματα Αφαίρεση 38 (10) - 26 (10) = 12 (10) 1 0 0 1 1 0 - - - - - - 0 1 1 0 1 0 0 0 1 1 0 0 25
Πολλαπλασιασμός - Διαίρεση Ο πολλαπλασιασμός και η διαίρεση μεταξύ θετικών δυαδικών αριθμών γίνεται με διαδοχικές προσθέσεις και αφαιρέσεις αντίστοιχα Πρέπει να σημειωθεί ότι στον πολλαπλασιασμό εκτελούμε κάθε φορά τα επιμέρους αθροίσματα, ώστε να μην προκύπτουν κρατούμενα που πρέπει να μεταφερθούν στις μεθεπόμενες βαθμίδες 26
Παραδείγματα - Πολλαπλασιασμός 20 (10) X 14 (10) 80 + 20 280 10100 X 1110 00000 + 10100 101000 + 10100 1111000 10100 100011000 27
Παραδείγματα - Διαίρεση 280 (10) 20 (10) 20 14 (10) 80 80 00 100011000 10100 10100 01110 0011110 10100 010100 10100 000000 28