ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6 ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Bits & Bytes Bit: η μικρότερη μονάδα πληροφορίας μία από δύο πιθανές καταστάσεις (ναι / όχι, αληθές / ψευδές, n / ff) κωδικοποίηση σε 0 ή 1 δυαδικό σύστημα Το δυαδικό σύστημα επιτρέπει την κατασκευή εξαρτημάτων που έχουν 2 μόνο καταστάσεις - υψηλή / χαμηλή τάση (chips) - φορά μαγνητικού πεδίου (δίσκοι) - ανάκλαση ή όχι φωτεινής δέσμης (CD-ROM, DVD κτλ) - παρουσία ή όχι ηλεκτρικού φορτίου (flash) Η πληροφορία αποθηκεύεται και επεξεργάζεται σαν bits. Byte: 8 bits που λειτουργούν σαν ενιαία μονάδα Είναι η βασική μονάδα επεξεργασίας και αποθήκευσης (μνήμης) 2 8 = 256 τιμές: μικροί ακέραιοι (0-255), χαρακτήρες (ASCII) 2 bytes μαζί μεγαλύτερη χωρητικότητα 2 bytes (16 bits) 2 16 = 65,536 τιμές (Unicde, μεγαλύτεροι ακέραιοι, χαρακτήρες) 4 bytes μαζί 32 bits 2 32 = 4,294,967,296 τιμές (μεγαλύτεροι ακέραιοι, πραγματικοί, διευθύνσεις μνήμης) κτλ. Οι σύγχρονοι υπολογιστές: 64-bit (8 bytes) > 18.4 πεντάκις εκατομμύρια τιμές! ver. 081214 Τμήμα Διοικησης Επιχειρησεων - Εις. Κατευθυνση Διοικησης Τουριστικων Επιχειρησεων Και Επιχειρησεων Φιλοξενιας 1
Δεκαδικό σύστημα Βάση το 10 10 ψηφία: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ένα δεκαδικό ψηφίο εκφράζει μία από δέκα πιθανές επιλογές (μετράει 10 πράγματα, έχει 10 διακριτές τιμές) δύο δεκαδικά ψηφία εκφράζουν μία από 100 πιθανές επιλογές κτλ. π.χ., 1932 = 1 1000 + 9 100 + 3 10 + 2 1 = 1 10 3 + 9 10 2 + 3 10 1 + 2 10 0 Δυαδικό σύστημα Βάση το 2 2 ψηφία: 0, 1 (bits) ένα δυαδικό ψηφίο εκφράζει μία από δύο πιθανές επιλογές (μετράει 2 πράγματα, έχει 2 διακριτές τιμές) δύο δυαδικά ψηφία εκφράζουν μία από 4 πιθανές επιλογές κτλ. π.χ., 11001 2 = 1 16 + 1 8 + 0 4 + 0 2 + 1 1 = 1 2 4 + 1 2 3 + 0 2 2 + 0 2 1 +1 2 0 = 25 (στο δεκαδικό) Μετατροπή βάσης: Δεκαδικοί σε δυαδικούς 1) Ανάλυση σε δυνάμεις του 2: π.χ., 42 = 32 + 10 = 32 + 8 + 2 = 2 5 + 2 3 + 2 1 = 101010 2 2) Διαδοχικές διαιρέσεις με το 2 (μόνο για ακέραιους) Πηλίκο 42 21 10 5 2 1 0 Υπόλοιπο 0 1 0 1 0 1 101010 2 (δηλαδή, τα υπόλοιπα σε αντίστροφη σειρά από αυτή που προκύπτουν) ver. 081214 Τμήμα Διοικησης Επιχειρησεων - Εις. Κατευθυνση Διοικησης Τουριστικων Επιχειρησεων Και Επιχειρησεων Φιλοξενιας 2
Άλλα συστήματα αριθμών Οι δυαδικοί αριθμοί είναι «ογκώδεις» για ανθρώπινη χρήση (για τους προγραμματιστές). - Οκταδικοί: 0, 1, 2, 3, 4, 5, 6, 7 (8 ψηφία) - Δεκαεξαδικοί: 0-9, A, B, C, D, E, F (16 ψηφία) Βάσεις που είναι δυνάμεις του 2, για ευκολότερη μετατροπή σε δυαδικούς. Οκταδικοί 2-δικό 8-δικό: κάθε δυαδική τριάδα αντιστοιχεί σε ένα οκταδικό στοιχείο και το αντίστροφο. Δυαδική τριάδα 000 001 010 011 100 101 110 111 Οκταδικό στοιχείο 0 1 2 3 4 5 6 7 Π.χ. Δυαδικό: 001 100 101 001 000 (αν δεν υπάρχει πλήρης 3άδα συμπληρώνουμε με 1 ή 2 μηδενικά αριστερά) Οκταδικό: 1 4 5 1 0 Οκταδικό: 3 2 5 6 7 Δυαδικό: 011 010 101 110 111 8-δικό 10-δικό: 456 8 = 4 8 2 + 5 8 1 + 6 8 0 = 4 64 + 5 8 + 6 1 = 256 + 40 + 6 = 302 10 10-δικό 8-δικό: Διαδοχικές διαιρέσεις με το 8: Πηλίκο 302 37 4 0 Υπόλοιπο 6 5 4 456 8 Δεκαεξαδικοί 2-δικό 16δικό: κάθε δυαδική τετράδα αντιστοιχεί σε ένα δεκαεξαδικό στοιχείο και το αντίστροφο. Δυαδική 4άδα 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 16-δικός 0 1 2 3 4 5 6 7 8 9 Α Β C D E F Π.χ. Δυαδικό: 0111 1011 1010 0011 (αν δεν υπάρχει πλήρης 3άδα συμπληρώνουμε με 1 ή 2 μηδενικά αριστερά) Δεκαεξαδικό: 7 Β Α 3 Δεκαεξαδικό: 3 2 C F Δυαδικό: 0011 0010 1100 1111 ver. 081214 Τμήμα Διοικησης Επιχειρησεων - Εις. Κατευθυνση Διοικησης Τουριστικων Επιχειρησεων Και Επιχειρησεων Φιλοξενιας 3
16-δικό 10-δικό: 4F3 16 = 4 16 2 + 15 16 1 + 3 16 0 = 4 256 + 15 16 + 3 1 = 1024 + 240 + 3 = 1267 10 10-δικό 16-δικό: Διαδοχικές διαιρέσεις με το 16: Πηλίκο 1267 79 4 0 Υπόλοιπο 3 15 4 4F3 16 16-δικό 8-δικό (και αντίστροφα): Με ενδυάμεση μετατροπή σε δυαδικό Δεκαεξαδικό: 3 2 C F Δυαδικό: 0011 0010 1100 1111 Δυαδικό (σε 3άδες): 000 011 001 011 001 111 Οκταδικό: 0 3 1 3 1 7 Αριθμητική στο δυαδικό σύστημα (γενικά) Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, και 1 + 1 = 10 π.χ. 01101 1010 + 00110 + 1100 ------- ------ 10011 10110 (κρατούμενο - carry) Ο πολλαπλασιασμός γίνεται όπως και στο δεκαδικό σύστημα: 1001 x 1010 ------ 0000 1001 0000 + 1001 --------- 1011010 Υπολογιστική αναπαράσταση ακεραίων α) Προσημασμένο μέγεθος Πρόσημο: το πρώτο bit: 0: +, 1: Τα υπόλοιπα m-1 bits για το μέγεθος του αριθμού (απόλυτη τιμή) ver. 081214 Τμήμα Διοικησης Επιχειρησεων - Εις. Κατευθυνση Διοικησης Τουριστικων Επιχειρησεων Και Επιχειρησεων Φιλοξενιας 4
Για m=8 (όλα τα υπόλοιπα περί υπολογιστικής αναπαράστασης, υποθέτουν ότι χρησιμοποιούμε 8 bits, δηλ. m = 8): π.χ. 00101010 2 = 42 10, 10101010 2 = -42 10 Δύο μηδενικά: 00000000 και 10000000 00101010 42 10 + 10101010-42 10 -------------------- 11010100 0 10 (Δεν ισχύει η συμβατική πρόσθεση μεταξύ θετικών και αρνητικών) β) Συμπλήρωμα ως προς ένα (ne s cmplement) Πρόσημο: το πρώτο bit: 0: +, 1: Ο αντίθετος: αντικατάσταση των 0 με 1 και των 1 με 0 (bit swapping) π.χ. 00101010 2 = 42 10, 11010101 2 = -42 10 Δύο μηδενικά: 00000000 και 11111111 00101010 42 10 + 11010101-42 10 -------------------- 11111111 0 10 (Ισχύει) γ) Συμπλήρωμα ως προς δύο (tw s cmplement) Πρόσημο: το πρώτο bit: 0: +, 1: Ο αντίθετος: όπως στο ne s cmplement (bit swapping) + 1 (τυχόν κρατούμενο στο αριστερό bit αγνοείται) π.χ. 00101010 2 = 42 10, 11010110 2 (*) = -42 10 (*) 11010101 (bit swapping) +00000001 (μονάδα) -------------- 11010110 Ένα μηδέν: 00000000 (γιατί με bit-swapping συν 1 έχουμε πάλι 00000000) Όμως: πλήθος αρνητικών = πλήθος θετικών + 1 00101010 42 10 + 11010110-42 10 -------------------- 100000000 0 10 (Ισχύει, το τελικό κρατούμενο αγνοείται) ver. 081214 Τμήμα Διοικησης Επιχειρησεων - Εις. Κατευθυνση Διοικησης Τουριστικων Επιχειρησεων Και Επιχειρησεων Φιλοξενιας 5
δ) Πλεόνασμα (excess) κατά 2 m-1 Κάθε αριθμός παριστάνεται με το άθροισμα της πραγματικής του τιμής με το 2 m-1. π.χ., για m = 8, 2 7 = 128, οι αριθμοί από -128 έως 127 απεικονίζονται στους 0 έως 255 (δηλαδή και οι αρνητικοί αριθμοί απεικονίζονται σε θετικούς). Άρα, ο 42 10 γίνεται 128 + 42 = 170 10 = 10101010 2 ενώ ο -42 10 γίνεται 128 42 = 86 10 01010110 2. Παρατηρούμε ότι στην ουσία είναι το tw s cmplement με το πρόσημο αντεστραμμένο. 10101010 42 10 + 01010110-42 10 -------------------- 100000000 0 10 (Ισχύει, το τελικό κρατούμενο αγνοείται) Προφανώς, εάν θέλουμε να αναπαραστήσουμε αριθμούς μικρότερους του -128 και μεγαλύτερους του 127, θα πρέπει να χρησιμοποιήσουμε περισσότερα των 8 bits. Η αφαίρεση δυαδικών αριθμών πραγματοποιείται με πρόσθεση του αντίθετου του αφαιρετέου. Αριθμητική στους δυαδικούς με συγκεκριμένη αναπαράσταση (για m =8) Δεκαδικό ne s cmplement tw s cmplement 10 00001010 00001010 + -3 + 11111100 + 11111101 = +7 1 00000110 1 00000111 00000111 00000111 Στο ne s cmplement τυχόν κρατούμενο στο αριστερό bit προστίθεται ξανά στο αποτέλεσμα. Στο tw s cmplement τυχόν κρατούμενο στο αριστερό bit αγνοείται. Υπερχείλιση και υπεκχείλιση Έστω ότι ένας υπολογιστής χειρίζεται μόνο 3ψήφιους θετικούς ακέραιους. Τότε, στις ακόλουθες πράξεις έχουμε: 600 + 600 = 1200 υπερχείλιση 002 005 = -3 υπεκχείλιση Αναπαράσταση πραγματικών αριθμών Π.χ, για υπολογισμούς με πολύ μεγάλους και πολύ μικρούς αριθμούς μάζα ηλεκτρονίου: 9 10-28 gr μάζα ήλιου: 2 10 33 gr ver. 081214 Τμήμα Διοικησης Επιχειρησεων - Εις. Κατευθυνση Διοικησης Τουριστικων Επιχειρησεων Και Επιχειρησεων Φιλοξενιας 6
Αναπαράσταση σταθερής υποδιαστολής ( fixed-pint): Για τους παραπάνω αριθμούς: ακέραιο μέρος δεκαδικό μέρος υποδιαστολή Ανάγκη για σύστημα αναπαράστασης όπου το εύρος των αριθμών είναι ανεξάρτητο από το πλήθος των σημαντικών ψηφίων: αναπαράσταση κινητής υποδιαστολής (flating-pint) Αναπαράσταση κινητής υποδιαστολής: 34 ψηφία 28 ψηφία Από εκθετική μορφή: n = f 10 e με 0.1 f < 1 ή f = 0 όπου f συντελεστής ή κλάσμα (mantissa), e εκθέτης (expnent) Για το f: Χρειάζεται αποθήκευση μόνο των δεκαδικών του ψηφίων (σαν ακέραιος). Άρα, για την αναπαράσταση ενός πραγματικού, χρησιμοποιούνται 2 ακέραιοι: f και e. π.χ., ο 3.141592 = 0.3141592 10 και αποθηκεύεται σαν f = +3141592 και e = +1. Έστω αναπαράσταση με 3-ψήφιο f και 2-ψήφιο e: Αναπαράσταση μεγεθών από +0.100 10-99 έως +0.999 10 +99 (με 5 ψηφία (3+2) και 2 πρόσημα). 3 5 Μεγάλοι αρνητικοί αριθμοί < -0.999 10 99 Αρνητικοί αριθμοί από -0.999 10 99 έως -0.100 10-99 Μικροί αρνητικοί αριθμοί με μέτρο < 0.100 10-99 Το μηδέν Μικροί θετικοί αριθμοί με μέτρο < 0.100 10-99 ver. 081214 Τμήμα Διοικησης Επιχειρησεων - Εις. Κατευθυνση Διοικησης Τουριστικων Επιχειρησεων Και Επιχειρησεων Φιλοξενιας 7
Θετικοί αριθμοί ανάμεσα σε 0.100 10-99 και 0.999 10 99 Μεγάλοι θετικοί αριθμοί > 0.999 10 99 Οι περιοχές 1, 3, 5, 7 δεν έχουν υπολογιστική αναπαράσταση. IEEE 754 Standard για αναπαράσταση / υπολογισμούς κινητής υποδιαστολής Δύο ακρίβειες: 32-bit: 64-bit: Ειδικά σύμβολα: -Inf, +Inf: περιοχές 1 και 7 αντίστοιχα NaN: για αδύνατες πράξεις, π.χ. 0 / 0, 0, / Αναπαράσταση χαρακτήρων Κωδικοποιούνται σαν ακέραιοι: χαρακτήρας ακέραιος Υπάρχουν διάφορα σύνολα χαρακτήρων: ASCII, Unicde, κτλ. ASCII (American Standard Cde fr Infrmatin Interchange): Unicde: Έχει 256 χαρακτήρες απεικόνιση στους ακέραιους 0-255. π.χ., a 97, B 66, 0 48. Οι πρώτοι 128 χαρακτήρες είναι οι πιο σημαντικοί. 128-255: μη λατινικά αλφάβητα και γραφικά σύμβολα. 65536 χαρακτήρες. Οι 128 πρώτες θέσεις είναι ίδιες με του ASCII. ver. 081214 Τμήμα Διοικησης Επιχειρησεων - Εις. Κατευθυνση Διοικησης Τουριστικων Επιχειρησεων Και Επιχειρησεων Φιλοξενιας 8