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

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Μετάβαση σε: πλοήγηση, αναζήτηση

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

Ονομάζεται δυαδικό επειδή η αναπαράσταση της πληροφορίας γίνεται με χρήση δύο συμβόλων.

Παράδειγμα[Επεξεργασία | επεξεργασία κώδικα]

.Ο δυαδικός αριθμός 11012 αναπαριστά ποσότητα ίση με 1 μονάδα (1 * 20), 0 δυάδες (0 * 21), 1 τετράδα (1 * 22) και 1 οκτάδα (1 * 23). Διαβάζεται : "ένα,ένα,μηδέν,ένα με βάση 2". Ισούται δηλαδή με τον αριθμό 13 του δεκαδικού συστήματος, 1 * 2^0 + 0 * 2^1 + 1 * 2^2 + 1 * 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. To αποτέλεσμα της αφαίρεσης είναι 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. Αρχίζοντας από το δεξιότερο ψηφίο του δυαδικού αριθμού το χωρίζουμε ανά 4 ψηφία μέχρι το αριστερότερο ψηφίο.

  Εάν η αριστερότερη τετράδα δεν συμπληρώνει 4 ψηφία, προσθέτουμε 0 στα αριστερά μέχρι να σχηματιστεί ολοκληρωμένη τετράδα.

2. Υπολογίζουμε τον δεκαεξαδικό αριθμό που προκύπτει για κάθε τετράδα σύμφωνα με την παρακάτω μέθοδο:

  Αρχίζοντας απο δεξιά κάθε στοιχείο αντιστοιχεί σε: 
  1ο ψηφίο: 20
  2ο ψηφίο: 21
  3ο ψηφίο: 22
  4ο ψηφίο: 23
  Όπου υπάρχει το ψηφίο 1 στην δυαδική τετράδα, προσθέτουμε το πιο πάνω αντίστοιχο αποτέλεσμα. 
  Το αποτέλεσμα που προκύπτει είναι σε δεκαδική μορφή. 
  Επομένως, απαιτείται μετατροπή του κάθε αριθμού σε δεκαεξαδικό αριθμό όπως στον παρακάτω πίνακα:
  
Τετράδα στο δυαδικό Δεκαδικός αριθμός Δεκαεξαδικός αριθμός
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 Α
1011 11 Β
1100 12 C
1101 13 D
1110 14 E
1111 15 F
"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

Πρόσθεση δυαδικών αριθμών[Επεξεργασία | επεξεργασία κώδικα]

Για την πρόσθεση των δυαδικών αριθμών ισχύουν οι ακόλουθοι κανόνες:

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.

Συμπλήρωμα ως προς 1[Επεξεργασία | επεξεργασία κώδικα]

Σε αυτήν την μέθοδο αντιστρέφονται τα ψηφία του δυαδικού αριθμού, όπου δηλαδή 0 γίνεται 1 και όπου 1 γίνεται 0, και ο αριθμός που προκύπτει θεωρείται ο αρνητικός του πρώτου.

Έτσι για παράδειγμα, ο (θετικός) αριθμός 7 σε μορφή ψηφιολέξης (byte) είναι ο ακόλουθος:
0000 0111
και ο αρνητικός -7 σε μορφή συμπληρώματος ως προς 1 γίνεται:
1111 1000

Το πρόβλημα με την συγκεκριμένη μέθοδο είναι πως υπάρχουν δύο αναπαραστάσεις για το μηδέν:
0000 0000 (για ένα "θετικό" μηδέν)
και
1111 1111 (για ένα "αρνητικό" μηδέν)

Για να αντιμετωπιστεί αυτό το πρόβλημα δημιουργήθηκε μια δεύτερη μέθοδος, το συμπλήρωμα ως προς 2

Συμπλήρωμα ως προς 2[Επεξεργασία | επεξεργασία κώδικα]

Στο συμπλήρωμα ως προς 2, μετά την αντιστροφή των δυαδικών ψηφίων προστίθεται επιπλέον ο αριθμός 1. Έτσι, και πάλι με παράδειγμα τον αριθμό 7 σε μορφή ψηφιολέξης (byte):
0000 0111
αντιστρέφουμε όπως στο συμπλήρωμα ως προς 1:
1111 1000
και τελικά προσθέτουμε το 1:
1111 1001

Πρόσημο και μέτρο[Επεξεργασία | επεξεργασία κώδικα]

Υπάρχει και ένας τρίτος τρόπος αναπαράστασης των αρνητικών αριθμών, ο οποίος δε χρησιμοποιείται πολύ συχνά, αλλά είναι πιο προσιτός στον άνθρωπο , καθώς μοιάζει πολύ με τον τρόπο αναπαράστασης αρνητικών αριθμών στο δεκαδικό σύστημα.

Στο σύστημα αυτό, το πρώτο από αριστερά δυαδικό ψηφίο λαμβάνεται ως το πρόσημο του δυαδικού αριθμού, ενώ τα ψηφία που ακολουθούν χρησιμοποιούνται για τον υπολογισμό του μέτρου του. Αν το πρώτο ψηφίο από τα αριστερά είναι 0, ο αριθμός θεωρείται θετικός, ενώ αν το πρώτο ψηφίο από τα αριστερά είναι 1, ο αριθμός θεωρείται αρνητικός.

Έτσι, αν χρησιμοποιούμε 8 bits (δυαδικά ψηφία ) για την αναπαράσταση του αριθμού, το 7 είναι

00000111

ενώ , το -7 θα είναι αντίστοιχα

10000111