Μετάβαση στο περιεχόμενο

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

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

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

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

Ο δυαδικός αριθμός αναπαριστά ποσότητα ίση με 1 μονάδα , 0 δυάδες , 1 τετράδα και 1 οκτάδα . Διαβάζεται : "ένα,ένα,μηδέν,ένα με βάση 2". Ισούται δηλαδή με τον αριθμό 13 του δεκαδικού συστήματος, .

Δυαδικό σύστημα στους υπολογιστές

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

Η αποθήκευση και επεξεργασία των δεδομένων στους ηλεκτρονικούς υπολογιστές γίνεται ψηφιακά. Οδηγώντας, για παράδειγμα, την είσοδο ενός λογικού κυκλώματος με τάση ρεύματος μεγαλύτερη μιας συγκεκριμένης τιμής (π.χ +3 Volts) αναπαριστούμε το ψηφίο "1", ενώ οδηγώντας την είσοδο με τάση ρεύματος μικρότερη μιας συγκεκριμένης τιμής (π.χ +2 Volts) αναπαριστούμε το ψηφίο "0". Λόγω της σχετικά απλής υλοποίησης στα ηλεκτρονικά κυκλώματα το δυαδικό σύστημα χρησιμοποιείται εκτεταμένα στους ηλεκτρονικούς υπολογιστές για την αναπαράσταση αριθμητικών δεδομένων. Άλλα χρησιμοποιούμενα συστήματα είναι το σύστημα κινητής υποδιαστολής, το σύστημα σταθερής υποδιαστολής, η δυαδική κωδικοποίηση δεκαδικού, και άλλα.

Χρήσεις του Δυαδικού Συστήματος Αριθμών[1]

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

Τα δυαδικά συστήματα αριθμών χρησιμοποιούνται για διάφορους σκοπούς και η πιο σημαντική χρήση του δυαδικού συστήματος αριθμών είναι:

  • Το δυαδικό σύστημα αριθμών χρησιμοποιείται σε όλα τα Ψηφιακά Ηλεκτρονικά Μέσα για την εκτέλεση διαφόρων λειτουργιών.
  • Οι Γλώσσες Προγραμματισμού χρησιμοποιούν Σύστημα Δυαδικών Αριθμών για την κωδικοποίηση και την αποκωδικοποίηση δεδομένων.
  • Το δυαδικό σύστημα αριθμών χρησιμοποιείται στις Επιστήμες Δεδομένων για διάφορους σκοπούς κ.λπ.

Μετατροπή από το δεκαδικό στο δυαδικό σύστημα

[Επεξεργασία | επεξεργασία κώδικα]
Παράδειγμα μετατροπής αριθμού από βάση-10 σε βάση-2: Ο δεκαδικός 250 σημειώνεται σε πίνακα με δυνάμεις του 10 και μέσω πίνακα με δυνάμεις του 2 γίνεται η μετατροπή του στον αντίστοιχο δυαδικό 11111010.


Παρακάτω παρουσιάζεται μέσω παραδείγματος ένας απλός τρόπος μετατροπής φυσικών αριθμών από δεκαδική σε δυαδική μορφή.

Έστω ότι έχουμε τον αριθμό 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 στην δυαδική τετράδα, προσθέτουμε το πιο πάνω αντίστοιχο αποτέλεσμα. 
  Το αποτέλεσμα που προκύπτει είναι σε δεκαδική μορφή. 
  Επομένως, απαιτείται μετατροπή του κάθε αριθμού σε δεκαεξαδικό αριθμό όπως στον παρακάτω πίνακα:
  
Τετράδα στο δυαδικό Δεκαδικός αριθμός Δεκαεξαδικός αριθμός
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

  1. «Binary Number System - Definition, Conversion, Examples». www.geeksforgeeks.org. Ανακτήθηκε στις 12 Ιουνίου 2024. 

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.

Συμπλήρωμα ως προς 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