Μετατροπή αριθμών από το δεκαδικό στο δυαδικό σύστημα και αντίστροφα




Οι υπολογιστές αυτό που καταλαβαίνουν είναι το 0 και 1.Εφόσον λοιπόν ασχολούμαστε με τους υπολογιστές λίγο παραπάνω ή θέλουμε να μάθουμε είναι και επιβεβλημένη η ανάγκη να γνωρίζουμε το πως μετατρέπουμε έναν αριθμό από την δεκαδική του μορφή στην δυαδική του και αντίστροφα.Αυτό είναι πολύ σημαντικό,ιδιαίτερα αν θέλουμε να ασχοληθούμε με την υποδικτύωση (subnetting) μίας IP διεύθυνσης.

Πιο συγκεκριμένα,έστω ότι έχουμε τον αριθμο 187.Για να τον μετατρέψουμε σε δυαδικό θα διαιρέσουμε τον αριθμό αυτό συνεχώς δια δύο μέχρι να βρούμε πηλίκο 0.Στην συνέχεια τοποθετούμε τα υπόλοιπα που βρήκαμε στην σειρά ξεκινώντας από το τελευταίο προς το πρώτο και έτσι σχηματίζεται ο δυαδικός του αριθμός.

Στην προκειμένη περίπτωση δηλαδή κάνουμε:

187/2=93 και υπόλοιπο 1

93/2=46 και υπόλοιπο 1

46/2=23 και υπόλοιπο 0

23/2=11 και υπόλοιπο 1

11/2=5 και υπόλοιπο 1

5/2=2 και υπόλοιπο 1

2/2=1 και υπόλοιπο 0

1/2=0 και υπόλοιπο 1

Ο αριθμός λοιπόν 187 στο δυαδικό σύστημα αν πάρουμε τα υπόλοιπα που έχουμε από το τελευταίο προς το πρώτο είναι ο εξής: 10111011

Τώρα για να μετατρέψουμε το 10111011 πάλι στο δεκαδικό σύστημα αρκεί να έχουμε υπόψιν μας πάντα τον παρακάτω πίνακα και να κάνουμε πρόσθεση όλα τα 1 που έχουμε.



Δηλαδή στο παράδειγμα μας εμείς έχουμε πλέον το δυαδικό αριθμό 10111011.Ξεκινάει από 1 και άρα θα ξεκινήσουμε με το 128.Ο δεύτερος αριθμός είναι το 0 όπως βλέπουμε και έτσι δεν θα χρησιμοποιήσουμε το 64 που είναι ο αμέσως επόμενος αριθμός αλλά θα πάμε στο 32 γιατί και πάλι έχουμε 1 (είπαμε προσθέτουμε μόνο τα 1 που έχουμε βασιζόμενοι πάντα από τον πίνακα).

Οπότε μέχρι στιγμής έχουμε 128+32=160

Αμέσως μετά έχουμε δύο άσους οπότε έχουμε 16+8=24

Μετά τα πρώτα 5 bits από τα 8 που έχει ο δυαδικός μας αριθμός έχουμε τον αριθμό 184 (160+24).Μας μένουν άλλα 3 bits.Βλέπουμε ότι το επόμενο bit είναι το 0 οπότε και δεν προσθέτουμε τίποτα αλλά μετακινούμαστε πιο δεξία του πίνακα.Απομένουν το 1 και το 1 τα οποία είναι τα 2 τελευταία bit και σχηματίζουν τον αριθμό 3 (2+1).Συνοψίζοντας έχουμε τις εξής προσθέσεις:

128+32+16+8+2+1=187

Το σημαντικό είναι λοιπόν όταν θέλουμε να μετατρέψουμε έναν αριθμό από το δυαδικό στο δεκαδικό σύστημα να έχουμε υπόψιν μας τα παρακάτω:

1. Γνώση του παραπάνω πίνακα
2. Ότι προσθέτουμε μόνο τα 1 που έχουμε
3. Κάθε φορά που έχουμε 0 μετακινούμαστε μία θέση προς τα δεξία από τον πίνακα (στον επόμενο αριθμό δηλαδή)

Η εξάσκηση είναι ο μόνος τρόπος για να απομνημονεύσει κάποιος καλά την διαδικασία.Οπότε όσες πιο πολλές φορές δοκιμάσετε,τόσο πιο γρήγορα θα μπορείτε στο μέλλον να κάνετε τις μετατροπές.

via: datalibrary.wordpress.com
Σχόλια