Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua...
TRANSCRIPT
![Page 1: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/1.jpg)
Αρχιτεκτονική Υπολογιστών
Νεκτάριος Κοζύρης
Εθνικό Μετσόβιο ΠολυτεχνείοΣχολή Ηλεκτρολόγων Μηχανικών -Μηχανικών Υπολογιστών
Αλγόριθμοι Αριθμητικών Πράξεων
![Page 2: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/2.jpg)
Άδεια Χρήσης
Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου,αυτή πρέπει να αναφέρεται ρητώς.
![Page 3: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/3.jpg)
cslab@ntua 2008-20092
ΑΡΙΘΜΟΙ
Decimal Eύκολο για τον άνθρωποΙδιαίτερα για την εκτέλεση αριθμητικών πράξεων
HexΧρήσιμο για την απεικόνιση δυαδικών αριθμών (4 bits / symbol)Αρκετά δύσκολο για αριθμητικές πράξεις
BinaryΧρησιμοποιείται εσωτερικά στους υπολογιστές για την απεικόνισητων αριθμώνΑριθμητικές πράξεις +,-,*,/ ????
![Page 4: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/4.jpg)
cslab@ntua 2008-20093
ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ
Βάση (radix) r ή β
nnm
mm
m
m
ni
iiN
βα
βα
βααβαβαβαβα 1...11... 22101
22
11
1
⋅++⋅+⋅++⋅++⋅+⋅=⋅= −−−−
−−
−
−
−=∑
ακέραιο μέρος τουαριθμού
κλασματικό μέρος του αριθμού
Παράσταση αριθμού: αm-1αm-2…α0, α-1α-2…α-n
Ψηφία του συστήματος: 0,…, β-1
π.χ. 1821,352(10) = 1×103 + 8×102 + 2×101 + 1×100 + 3×10-1 + 5×10-2 + 2×10-3
1256,124(8) = 1×83 + 2×82 + 5×81 + 6×80 + 1×8-1 + 2×8-2 + 4×8-3
![Page 5: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/5.jpg)
cslab@ntua 2008-20094
ΜΕΤΑΤΡΟΠΕΣ ΜΕΤΑΞΥ ΣΥΣΤΗΜΑΤΩΝ
161622
00100010 11011101 10011001 11011101 11001100,
22 DD 99 DD CC,
168
22011011 011011 001001 110110 111111,
33 33 11 66 77,
001001
11
![Page 6: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/6.jpg)
cslab@ntua 2008-20095
COMPUTER ARITHMETICΘετικοί ακέραιοι
Διευθύνσεις, pointers κτλ.
Προσημασμένοι ακέραιοιΑριθμητικές πράξεις ακεραίων αριθμών
Πραγματικοί αριθμοίΑριθμητικές πράξεις πραγματικών αριθμών
Περιορισμένος αριθμός bitsΥπερχείλιση (Overflow)1101 + 0101 = 1 0010
![Page 7: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/7.jpg)
cslab@ntua 2008-20096
ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΡΙΘΜΩΝn bits
Μπορούν να ανπαρασταθούν 2n διαφορετικά στοιχείαMSB (Most Significant Bit), LSB (Less Significant Bit)3 διαφορετικές αναπαραστάσεις:
Πρόσημο – μέτρο, Συμπλήρωμα ως προς 1, Συμπλήρωμα ωςπρος 2
Sign Magnitude One's Complement Two's Complement000 = +0 000 = +0 000 = +0001 = +1 001 = +1 001 = +1010 = +2 010 = +2 010 = +2011 = +3 011 = +3 011 = +3100 = -0 100 = -3 100 = -4101 = -1 101 = -2 101 = -3110 = -2 110 = -1 110 = -2111 = -3 111 = -0 111 = -1
![Page 8: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/8.jpg)
cslab@ntua 2008-20097
ΠΡΟΣΗΜΟ - ΜΕΤΡΟ
To MSB αφιερώνεται για να περιγράψει το πρόσημο (0 →+, 1 → -)Τα υπόλοιπα bits καθορίζουν το μέτρο του αριθμούΠ.χ. Σε 12 bits το +1764(10) παρίσταται ως: 011011100100 το -1764(10) παρίσταται ως: 111011100100
Παρίστανται οι αριθμοί από -2n-1+1 εώς 2n-1-1To 0 έχει 2 παραστάσεις (000…0 και 100…0)
Πρόσημο Μέτρο
![Page 9: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/9.jpg)
cslab@ntua 2008-20098
ΠΡΟΣΗΜΟ - ΜΕΤΡΟ
Πρόσθεση
Α, Β ομόσημοιΥπάρχει περίπτωση υπερχείλισηςΕντοπίζεται στο κρατούμενο Cn
Α, Β ετερόσημοιΔεν υπάρχει υπερχείλισηΤο κρατούμενο Cn προσδιορίζει τοπρόσημο του τελικού αποτελέσματος
![Page 10: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/10.jpg)
cslab@ntua 2008-20099
ΠΡΟΣΗΜΟ - ΜΕΤΡΟ
Αφαίρεση
Παρόμοια με την πρόσθεσηΑφαίρεση ομόσημων = πρόσθεσηετερόσημωνΑφαίρεση ετερόσημων = πρόσθεσηομόσημων
![Page 11: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/11.jpg)
cslab@ntua 2008-200910
ΠΡΟΣΗΜΟ - ΜΕΤΡΟ
Πλεονεκτήματα:Εύκολα αντιληπτή από τον άνθρωποΓρήγορη εύρεση του αντιθέτου
Μειονεκτήματα:Μη αποδοτική στις στοιχειώδεις πράξεις, π.χ. για υλοποίησηπρόσθεσης:
Έλεγχος προσήμουΣύγκριση μέτρουΔιεξαγωγή πράξης
Διπλή αναπαράσταση για το 0Δύσκολη επέκταση προσήμου
![Page 12: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/12.jpg)
cslab@ntua 2008-200911
ΣΥΜΠΛΗΡΩΜΑ ΩΣ ΠΡΟΣ 1
To MSB προσδιορίζει το πρόσημο (0→+, 1→-)Οι αρνητικοί ακέραιοι προκύπτουν από τον αντίστοιχο θετικόμε αντιστροφή και των n bitsΠ.χ. Σε 12 bits
το +1764(10) παρίσταται ως: 011011100100 το -1764(10) παρίσταται ως: 100100011011
Παρίστανται οι αριθμοί από -2n-1+1 εώς 2n-1-1To 0 έχει 2 παραστάσεις (000…0 και 111…1)
ΜειονεκτήματαΔιπλή αναπαράσταση για το 0Δύσκολο για τον άνθρωπο
![Page 13: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/13.jpg)
cslab@ntua 2008-200912
ΣΥΜΠΛΗΡΩΜΑ ΩΣ ΠΡΟΣ 2To MSB προσδιορίζει το πρόσημο (0→+, 1→-)Οι αρνητικοί ακέραιοι προκύπτουν από τον αντίστοιχο θετικό μεαντιστροφή και των n bits και πρόσθεση της μονάδαςΗ ίδια διαδικασία εφαρμόζεται για την εύρεση του αντίθετου είτε οαριθμός είναι θετικός είτε είναι αρνητικόςΠ.χ. Σε 12 bits
το +1764(10) παρίσταται ως: 011011100100 το -1764(10) παρίσταται ως: 100100011011
+ 000000000001--------------------100100011100
Aν ẑ το συμπλήρωμα ως προς 2 του z, στα n bits ισχύει: z + ẑ = 2n
Παρίστανται οι αριθμοί από -2n-1 εώς 2n-1-1To 0 έχει 1 παράσταση (000…0)
![Page 14: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/14.jpg)
cslab@ntua 2008-200913
ΣΥΜΠΛΗΡΩΜΑ ΩΣ ΠΡΟΣ 2ΠρόσθεσηΑφαίρεση
Πρόσθεση του αντίθετου αριθμού
Πρόσθεση bit-bit από δεξιά προς αριστερά με μεταφοράκρατουμένου
001100 001100 110100 110100 101110+010001 +101111 +010001 +101111 +101110------------- ------------ ------------- ------------ ------------011101 111011 1000101 1100011 1011100
![Page 15: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/15.jpg)
cslab@ntua 2008-200914
ΣΥΜΠΛΗΡΩΜΑ ΩΣ ΠΡΟΣ 2Η διαδικασία της πρόσθεσης/αφαίρεσης είναι αρκετά απλή
Πιο γρήγορη από την αντίστοιχη διαδικασία για αριθμούς σεμορφή “πρόσημο-μέτρο”
Δεν απαιτείται έλεγχος προσήμου
Πιθανότητα υπερχείλισης και άρα λανθασμένουαποτελέσματος
Μειονεκτήματα:Δύσκολο για τον άνθρωποΔύσκολη εύρεση του αντιθέτου
![Page 16: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/16.jpg)
cslab@ntua 2008-200915
ΣΥΜΠΛΗΡΩΜΑ ΩΣ ΠΡΟΣ 2
Καμία πιθανότητα υπερχείλισηςΠρόσθεση ετερόσημων αριθμώνΑφαίρεση ομόσημων αριθμών
Υπερχείλιση όταν :Πρόσθεση δύο θετικών αριθμών δίνει αρνητικό αριθμόΠρόσθεση δύο αρνητικών αριθμών δίνει θετικό αριθμόΑφαίρεση αρνητικού από θετικό δίνει αρνητικόΑφαίρεση θετικού από αρνητικό δίνει θετικό
![Page 17: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/17.jpg)
cslab@ntua 2008-200916
ΣΥΜΠΛΗΡΩΜΑ ΩΣ ΠΡΟΣ 2
Όταν το σύστημα εντοπίσει μια υπερχείλιση ειδοποιεί τοπρόγραμμα που την προκάλεσε (interrupt / exception)Άλλες γλώσσες προγραμματισμού τις αγνοούν (π.χ C) ενώ άλλες απαιτούν να ειδοποιείται το πρόγραμμα και οχρήστης (πχ. Fortran, Ada)
ΠΡΑΞΗ Α Β ΑΠΟΤΕΛΕΣΜΑΑ + Β >0 >0 <0Α + Β <0 <0 >0Α – Β >0 <0 <0Α – Β <0 >0 >0
![Page 18: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/18.jpg)
cslab@ntua 2008-200917
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ
Γενικά πιο πολύπλοκος από την πρόσθεση
Υλοποιείται με διαδοχικές ολισθήσεις και προσθέσεις
Απαιτεί περισσότερο χρόνο καθώς και περισσότερο υλικόΑν ο Α έχει n ψηφία και ο Β m, τότε το γινόμενο θα έχει n+m
Τί γίνεται όταν πολλαπλασιάζουμε ετερόσημους αριθμούς;
![Page 19: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/19.jpg)
cslab@ntua 2008-200918
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ
![Page 20: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/20.jpg)
cslab@ntua 2008-200919
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣΒελτιωμένη έκδοσηΛιγότερο υλικό
Μόνο το γινόμενο 64 bitsΔεν χρειάζεται ο καταχωρητήςτου πολλαπλασιαστή
Ολίσθηση δεξιά
![Page 21: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/21.jpg)
cslab@ntua 2008-200920
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ
![Page 22: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/22.jpg)
cslab@ntua 2008-200921
ΑΛΓΟΡΙΘΜΟΣ BOOTH
Σχεδιάστηκε από τον Andrew Booth το 1951Πολλαπλασιάζει 2 προσημασμένους αριθμούς σεπαράσταση συμπληρώματος ως προς 2Στηρίζεται στην παρακάτω παρατήρηση :
Έστω δυαδικός αριθμός με τα bits m εώς k ίσα με 1. Τότε οαριθμός αυτός είναι ίσος με 2k+1 – 2m
Επομένως μπορώ να μετατρέψω τον πολλαπλασιασμόως εξής :
Μ * Multiplier = M * 2k+1 - M * 2m
![Page 23: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/23.jpg)
cslab@ntua 2008-200922
ΑΛΓΟΡΙΘΜΟΣ BOOTH
Παράδειγμα :Μultiplier = 14 = 001110→ k = 3, m = 1 → 24 - 21 = 16 - 2 = 14→ M * Multiplier = M * 24 - M * 21
→ 4 αριστερές ολισθήσεις του Μ – 1 αριστερή ολίσθησητου Μ
![Page 24: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/24.jpg)
cslab@ntua 2008-200923
ΑΛΓΟΡΙΘΜΟΣ BOOTHΠολλαπλασιασμός Β (multiplicand) * Q * (multiplier)
Έλεγχος του τρέχοντος και του προηγούμενου bit :01 : Τέλος μιας σειράς από 1 → Πρόσθεση του πολλαπλασιαστέουστο αριστερό μισό του γινομένου10 : Αρχή μιας σειράς από 1 → Αφαίρεση του πολλαπλασιαστέουαπό το αριστερό μισό του γινομένου00, 11 : Καμία αριθμητική πράξη
Αριθμητική ολίσθηση του γινομένου δεξιά κατά 1 bit και επανάληψητου αλγορίθμου (επέκταση του προσήμου για να διατηρηθεί τοπρόσημο κατά τον πολλαπλασιασμό προσημασμένων αριθμών)
![Page 25: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/25.jpg)
cslab@ntua 2008-200924
ΑΛΓΟΡΙΘΜΟΣ BOOTH
![Page 26: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/26.jpg)
cslab@ntua 2008-200925
ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙn διαθέσιμα bitsΠεπερασμένος αριθμός από αριθμούς πουαναπαρίστανται (όπως στους ακέραιους)Μπορούν να αναπαρασταθούν συγκεκριμένος αριθμόςπραγματικών με συγκεκριμένη απόσταση (ακρίβεια)
2 προσεγγίσεις:Αναπαράσταση σταθερής υποδιαστολήςΑναπαράσταση κινητής υποδιαστολής
![Page 27: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/27.jpg)
cslab@ntua 2008-200926
ΑΝΑΠΑΡΑΣΤΑΣΗ ΣΤΑΘΕΡΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
n διαθέσιμα bits : n=1+ n1 + n2
MSB διατίθεται για πρόσημοn1 bits διατίθενται για παράσταση ακέραιου μέρους(καθορίζουν το εύρος)n2 bits διατίθενται για παράσταση κλασματικού μέρους(καθορίζουν την ακρίβεια)Όλοι οι αριθμοί ισαπέχουν
Πρόσημο Ακέραιομέρος
Κλασματικόμέρος
![Page 28: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/28.jpg)
cslab@ntua 2008-200927
ΑΝΑΠΑΡΑΣΤΑΣΗ ΣΤΑΘΕΡΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
Π.χ. 8 bits, συμπλήρωμα ως προς 14 bits ακέραιο μέροςΜεγαλύτερος αριθμός 0 1111 , 111 = 15,875(10)Μικρότερος αριθμός 1 0000 , 000 = -15,875(10)Άρα παρίστανται 256 πραγματικοί αριθμοί στο [-15,875 15,875]Ομοιόμορφη απόσταση 2-3 = 0,001(2) = 0,125(10)Σφάλμα στρογγυλοποίησης: 2-4
ΔΕΝ ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ ΓΙΑΤΙ ΕΧΕΙ ΠΟΛΥ ΜΕΓΑΛΟΣΧΕΤΙΚΟ ΣΦΑΛΜΑ
![Page 29: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/29.jpg)
cslab@ntua 2008-200928
ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
Εκθετική μορφή αναπαράστασης πραγματικών αριθμών: Ν = (-1)sign × σ × 2e
σ = συντελεστής (mantissa / significant)e = εκθέτης (exponent)
Πολλοί τρόποι για την παράσταση του ίδιου αριθμού:101,011 = 101,011 × 20 =1,01011 × 22 = 0,101011 × 23 = 101011 × 2-3
Κανονική μορφή (normal form):1,xxxxxxxx × 2e
![Page 30: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/30.jpg)
cslab@ntua 2008-200929
Εξασφαλίζει μεγάλο εύρος για την παράσταση μεγάλωναριθμών και μεγάλη ακρίβεια για τους μικρούς αριθμούς
Απόλυτο σφάλμα στρογγυλοποίησης: 2-n1-1 × 2e
Σχετικό σφάλμα στρογγυλοποίησης: 2-n1-1
Δεν ισοκατανέμει τους αριθμούς
ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
Πρόσημο εκθέτης
n2 bits
συντελεστήςσε κανονικήμορφή n1 bits
0 2-3 2-2 2-1 20 21
![Page 31: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/31.jpg)
cslab@ntua 2008-200930
ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
Αύξηση των bits του συντελεστή → αύξηση της ακρίβειαςΑύξηση των bits του εκθέτη → αύξηση του εύρους τωναριθμών που μπορούν να παρασταθούνΥπερχείλιση → Ο εκθέτης είναι πολύ μεγάλος για ναχωρέσει στο πεδίο (floating point overflow)Ανεπάρκεια → Ο αρνητικός εκθέτης είναι πολύ μικρόςγια να χωρέσει στο πεδίο (floating point underflow)ΙΕΕΕ 754 floating point standard :
Single precision : 8 bits εκθέτης, 23 bits συντελεστήςDouble precision : 11 bits εκθέτης, 52 bits συντελεστήςΤο αρχικό bit 1 των κανονικοποιημένων συντελεστών υπονοείται(είναι κρυφό) → κέρδος 1 ακόμα bit για το συντελεστή
![Page 32: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/32.jpg)
cslab@ntua 2008-200931
ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣΠόλωση εκθέτη
Min = 000…00Max = 111..11Κάνει ευκολότερη τη σύγκριση και την ταξινόμηση των εκθετών
ΙΕΕΕ 754πόλωση = 127 για single precisionπόλωση = 1023 για double precision
N = (-1)sign × (1 + σ) × 2e-bias
e = σ = 0 → Ν = 0e = 0, σ ≠ 0 → Ν μη κανονικοποιημένος αριθμόςe = 255/2047, σ = 0 → Ν = ±∞e = 255/2047, σ ≠ 0 → Ν = ΝaN (όχι αριθμός)
![Page 33: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/33.jpg)
cslab@ntua 2008-200932
ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
Decimal : - 0.75 = - (½ + ¼)Binary : - 0.11 = - 1.1 x 2-1
Floating point :Εκθέτης = 126 = 01111110Συντελεστής = 1
![Page 34: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/34.jpg)
cslab@ntua 2008-200933
ΠΡΟΣΘΕΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
Πώς το υλοποιούμε με την μονάδα πράξεωνγια ακεραίους (integer arithmetic unit) ???
![Page 35: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/35.jpg)
cslab@ntua 2008-200934
ΠΡΟΣΘΕΣΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
Compare
exponentsSmall ALU
Exponentdifference
Control
ExponentSign Fraction
Big ALU
ExponentSign Fraction
0 1 0 1 0 1
Shift right
0 1 0 1
Increment ordecrement
Shift left or right
Rounding hardware
ExponentSign Fraction
Shift smaller
number right
Add
Normalize
Round
![Page 36: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/36.jpg)
cslab@ntua 2008-200935
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ
![Page 37: Αλγόριθμοι Νεκτάριος Κοζύρης Αριθμητικών · cslab@ntua 2008-2009 6 ΑΝΑΠΑΡΑΣΤΑΣΗΑΡΙΘΜΩΝ n bits Μπορούνναανπαρασταθούν2n](https://reader036.vdocuments.pub/reader036/viewer/2022071219/60554747e1d13b74820fd0f8/html5/thumbnails/37.jpg)
Χρηματοδότηση
Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί σταπλαίσια του εκπαιδευτικού έργου του διδάσκοντα.Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχειχρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού.Το έργο υλοποιείται στο πλαίσιο του ΕπιχειρησιακούΠρογράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση(Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.