Δυαδικό σύστημα

Το δυαδικό σύστημα αρίθμησης αναπαριστά αριθμητικές τιμές χρησιμοποιώντας δύο σύμβολα, το 0 και το 1. Πιο συγκεκριμένα, το δυαδικό είναι θεσιακό σύστημα με βάση το δύο. Κάθε ψηφίο ανήκει σε μία τάξη μεγέθους μεγαλύτερη κατά ένα από αυτήν του ψηφίου στα δεξιά του. Έτσι, κάθε ψηφίο ενός δυαδικού αριθμού από δεξιά προς τ' αριστερά δηλώνει μονάδα, δυάδα, τετράδα, οκτάδα κ.ο.κ. Ονομάζεται δυαδικό επειδή η αναπαράσταση της πληροφορίας γίνεται με χρήση δύο συμβόλων.

 Ο δυαδικός αριθμός ( 1101 ) 2 {\displaystyle (1101)_{2}} αναπαριστά ποσότητα ίση με 1 μονάδα ( 1 × 2 0 ) {\displaystyle (1\times 2^{0})} , 0 δυάδες ( 0 × 2 1 ) {\displaystyle (0\times 2^{1})} , 1 τετράδα ( 1 × 2 2 ) {\displaystyle (1\times 2^{2})} και 1 οκτάδα ( 1 × 2 3 ) {\displaystyle (1\times 2^{3})} . Διαβάζεται : "ένα,ένα,μηδέν,ένα με βάση 2". Ισούται δηλαδή με τον αριθμό 13 του δεκαδικού συστήματος, 1 × 2 0 + 0 × 2 1 + 1 × 2 2 + 1 × 2 3 = 13 {\displaystyle 1\times 2^{0}+0\times 2^{1}+1\times 2^{2}+1\times 2^{3}=13} . Η αποθήκευση και επεξεργασία των δεδομένων στους ηλεκτρονικούς υπολογιστές γίνεται ψηφιακά. Οδηγώντας, για παράδειγμα, την είσοδο ενός λογικού κυκλώματος με τάση ρεύματος μεγαλύτερη μιας συγκεκριμένης τιμής (π.χ +3 Volts) αναπαριστούμε το ψηφίο "1", ενώ οδηγώντας την είσοδο με τάση ρεύματος μικρότερη μιας συγκεκριμένης τιμής (π.χ +2 Volts) αναπαριστούμε το ψηφίο "0". Λόγω της σχετικά απλής υλοποίησης στα ηλεκτρονικά κυκλώματα το δυαδικό σύστημα χρησιμοποιείται εκτεταμένα στους ηλεκτρονικούς υπολογιστές για την αναπαράσταση αριθμητικών δεδομένων. Άλλα χρησιμοποιούμενα συστήματα είναι το σύστημα κινητής υποδιαστολής, το σύστημα σταθερής υποδιαστολής, η δυαδική κωδικοποίηση δεκαδικού, και άλλα. Παρακάτω παρουσιάζεται μέσω παραδείγματος ένας απλός τρόπος μετατροπής φυσικών αριθμών από δεκαδική σε δυαδική μορφή. Έστω ότι έχουμε τον αριθμό 1310, όπως στο αρχικό παράδειγμα. Γράφουμε τις δυνάμεις του 2, μέχρι να προκύψει αριθμός μεγαλύτερος ή ίσος από τον ζητούμενο αριθμό, οπότε σταματάμε στον αμέσως προηγούμενο. 20=1 21=2 22=4 23=8 Στην προκειμένη περίπτωση ο ζητούμενος αριθμός είναι το 13, άρα σταματάμε στο 23=8, γιατί 24=16>13. Παρατηρούμε ότι ο αριθμός 23 χωράει μια φορά στο 13, άρα σημειώνουμε x1. Το αποτέλεσμα της αφαίρεσης είναι 5. Το 22 χωράει μια φορά στο 5 άρα σημειώνουμε x1. Μένει 1 , όμως το 21 δε χωράει στο ένα άρα σημειώνουμε x0. Τέλος το 20 χωράει μια φορά στο ένα , άρα σημειώνουμε x1. 13 -23 x1 5 -22 x1 1 -21 x0 1 -20 x1 0 Γράφοντας τις σημειώσεις στη σειρά από πάνω ως κάτω, προκύπτει ο αριθμός σε δυαδική μορφή. Δηλαδή, 11012 = 1310. Με τον ίδιο τρόπο μπορούμε να μετατρέψουμε έναν δεκαδικό αριθμό σε οποιοδήποτε σύστημα, χρησιμοποιώντας κάθε φορά τις δυνάμεις της βάσης του εκάστοτε συστήματος αρίθμησης (οκταδικό, δεκαεξαδικό κτλ.). Ένας δεύτερος επίσης απλός τρόπος για την μετατροπή ενός αριθμού από το δεκαδικό σύστημα αρίθμησης στο δυαδικό είναι Βήμα 1 : διαιρούμε τον αριθμό με το 2 (ακέραια διαίρεση δηλ. δεν προχωράμε σε υποδιαστολή) Βήμα 2 : Το πηλίκο που βρήκαμε το διαιρούμε με το 2 Πραγματοποιούμε επαναληπτικά το βήμα 2 εως ότου στο πηλίκο έχουμε 0 Τέλος παίρνουμε από κάτω προς τα πάνω (ανάποδα) τα υπόλοιπα των διαιρέσεων και έχουμε τον αριθμό στο δυαδικό σύστημα αρίθμησης Βιβλιογραφια : Εισαγωγή στην Επιστήμη των Υπολογιστών, ΠΛΗ10, Τόμος Α΄, ΕΑΠ 2000 Ένας εύκολος τρόπος για να κάνουμε τις μετατροπές από δυαδικό σε δεκαδικό και αντίστροφα φαίνονται στην εικόνα Για την μετατροπή απο δυαδικό αριθμό σε δεκαεξαδικό ακολουθούμε τα παρακάτω βήματα: 1. Αρχίζοντας από το δεξιότερο ψηφίο του δυαδικού αριθμού το χωρίζουμε ανά 4 ψηφία μέχρι το αριστερότερο ψηφίο. Εάν η αριστερότερη τετράδα δεν συμπληρώνει 4 ψηφία, προσθέτουμε 0 στα αριστερά μέχρι να σχηματιστεί ολοκληρωμένη τετράδα. 2. Υπολογίζουμε τον δεκαεξαδικό αριθμό που προκύπτει για κάθε τετράδα σύμφωνα με την παρακάτω μέθοδο: Αρχίζοντας απο δεξιά κάθε στοιχείο αντιστοιχεί σε: 1ο ψηφίο: 20 2ο ψηφίο: 21 3ο ψηφίο: 22 4ο ψηφίο: 23 Όπου υπάρχει το ψηφίο 1 στην δυαδική τετράδα, προσθέτουμε το πιο πάνω αντίστοιχο αποτέλεσμα. Το αποτέλεσμα που προκύπτει είναι σε δεκαδική μορφή. Επομένως, απαιτείται μετατροπή του κάθε αριθμού σε δεκαεξαδικό αριθμό όπως στον παρακάτω πίνακα: "Data Recovery Programming", Tarun Tyagi, BPB Publications, New Delhi, India, ISBN 81-7656-922-4 http://www.datadoctor.biz/gr/data_recovery_programming_book_chapter4-page15.html Αρχειοθετήθηκε 2012-10-10 στο Wayback Machine. Για την πρόσθεση των δυαδικών αριθμών ισχύουν οι ακόλουθοι κανόνες: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 και 1 το κρατούμενο 1 + 1 + 1 = 1 και 1 το κρατούμενο Έτσι για παράδειγμα, για να προσθέσουμε σε μορφή ψηφιολέξης (byte) τους αριθμούς 121 και 107, έχουμε: (121) 01111001 (107) 01101011 + (228) 11100100 Όπου η πρόσθεση αρχίζει όπως και στο δεκαδικό από τα δεξιά, δηλ. από την λιγότερο σημαντική θέση. Για την αφαίρεση των δυαδικών αριθμών ισχύουν οι ακόλουθοι κανόνες: 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1 και 1 το δανειζόμενο Έτσι για παράδειγμα, για να αφαιρέσουμε σε μορφή ψηφιολέξης (byte) τους αριθμούς 121 και 107, έχουμε: (121) 01111001 (107) 01101011 - (014) 00001110 Όπου η αφαίρεση αρχίζει όπως και στο δεκαδικό από τα δεξιά, δηλ. από την λιγότερο σημαντική θέση. Για να αναπαρασταθούν αρνητικοί αριθμοί με το δυαδικό σύστημα αρίθμησης χρησιμοποιούνται δύο βασικά τρόποι, το συμπλήρωμα ως προς 1 και το συμπλήρωμα ως προς 2. Σε αυτήν την μέθοδο αντιστρέφονται τα ψηφία του δυαδικού αριθμού, όπου δηλαδή 0 γίνεται 1 και όπου 1 γίνεται 0, και ο αριθμός που προκύπτει θεωρείται ο αρνητικός του πρώτου. Έτσι για παράδειγμα, ο (θετικός) αριθμός 7 σε μορφή ψηφιολέξης (byte) είναι ο ακόλουθος: 0000 0111 και ο αρνητικός -7 σε μορφή συμπληρώματος ως προς 1 γίνεται: 1111 1000 Το πρόβλημα με την συγκεκριμένη μέθοδο είναι πως υπάρχουν δύο αναπαραστάσεις για το μηδέν: 0000 0000 (για ένα "θετικό" μηδέν) και 1111 1111 (για ένα "αρνητικό" μηδέν) Για να αντιμετωπιστεί αυτό το πρόβλημα δημιουργήθηκε μια δεύτερη μέθοδος, το συμπλήρωμα ως προς 2 Στο συμπλήρωμα ως προς 2, μετά την αντιστροφή των δυαδικών ψηφίων προστίθεται επιπλέον ο αριθμός 1. Έτσι, και πάλι με παράδειγμα τον αριθμό 7 σε μορφή ψηφιολέξης (byte): 0000 0111 αντιστρέφουμε όπως στο συμπλήρωμα ως προς 1: 1111 1000 και τελικά προσθέτουμε το 1: 1111 1001 Υπάρχει και ένας τρίτος τρόπος αναπαράστασης των αρνητικών αριθμών, ο οποίος δε χρησιμοποιείται πολύ συχνά, αλλά είναι πιο προσιτός στον άνθρωπο , καθώς μοιάζει πολύ με τον τρόπο αναπαράστασης αρνητικών αριθμών στο δεκαδικό σύστημα. Στο σύστημα αυτό, το πρώτο από αριστερά δυαδικό ψηφίο λαμβάνεται ως το πρόσημο του δυαδικού αριθμού, ενώ τα ψηφία που ακολουθούν χρησιμοποιούνται για τον υπολογισμό του μέτρου του. Αν το πρώτο ψηφίο από τα αριστερά είναι 0, ο αριθμός θεωρείται θετικός, ενώ αν το πρώτο ψηφίο από τα αριστερά είναι 1, ο αριθμός θεωρείται αρνητικός. Έτσι, αν χρησιμοποιούμε 8 bits (δυαδικά ψηφία ) για την αναπαράσταση του αριθμού, το 7 είναι 00000111 ενώ , το -7 θα είναι αντίστοιχα 10000111 Πανψηφιακός αριθμός