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

Η μετατροπή αριθμών από ένα σύστημα αριθμών σε ένα άλλο είναι ένα σημαντικό μέρος της αριθμητικής μηχανής. Ας εξετάσουμε τους βασικούς κανόνες της μετάφρασης.

1. Για να μετατρέψετε έναν δυαδικό αριθμό σε δεκαδικό, είναι απαραίτητο να τον γράψετε με τη μορφή πολυωνύμου, που αποτελείται από τα γινόμενα των ψηφίων του αριθμού και την αντίστοιχη ισχύ του 2, και να τον υπολογίσετε σύμφωνα με τους κανόνες του δεκαδική αριθμητική:

Κατά τη μετάφραση, είναι βολικό να χρησιμοποιήσετε τον πίνακα εξουσιών των δύο:

Πίνακας 4. Δυνάμεις του αριθμού 2

n (πτυχίο)

Παράδειγμα.

2. Για να μετατρέψετε έναν οκταδικό αριθμό σε δεκαδικό, είναι απαραίτητο να τον γράψετε ως πολυώνυμο που αποτελείται από τα γινόμενα των ψηφίων του αριθμού και την αντίστοιχη ισχύ του αριθμού 8 και να τον υπολογίσετε σύμφωνα με τους κανόνες του δεκαδικού αριθμητική:

Κατά τη μετάφραση, είναι βολικό να χρησιμοποιήσετε τον πίνακα δυνάμεων των οκτώ:

Πίνακας 5. Δυνάμεις του αριθμού 8

n (πτυχίο)

Παράδειγμα.Μετατρέψτε τον αριθμό στο σύστημα δεκαδικών αριθμών.

3. Για να μετατρέψετε έναν δεκαεξαδικό αριθμό σε δεκαδικό, είναι απαραίτητο να τον γράψετε με τη μορφή πολυωνύμου, που αποτελείται από τα γινόμενα των ψηφίων του αριθμού και την αντίστοιχη ισχύ του αριθμού 16 και να τον υπολογίσετε σύμφωνα με το Κανόνες δεκαδικής αριθμητικής:

Κατά τη μετάφραση, είναι βολικό στη χρήση blitz των δυνάμεων του αριθμού 16:

Πίνακας 6. Δυνάμεις του αριθμού 16

n (πτυχίο)

Παράδειγμα.Μετατρέψτε τον αριθμό στο σύστημα δεκαδικών αριθμών.

4. Για να μετατρέψετε έναν δεκαδικό αριθμό στο δυαδικό σύστημα, πρέπει να διαιρεθεί διαδοχικά με το 2 έως ότου παραμείνει ένα υπόλοιπο μικρότερο ή ίσο με 1 Ένας αριθμός στο δυαδικό σύστημα γράφεται ως ακολουθία του αποτελέσματος της τελευταίας διαίρεσης και τα υπόλοιπα από η διαίρεση με αντίστροφη σειρά.

Παράδειγμα.Μετατρέψτε τον αριθμό στο δυαδικό σύστημα αριθμών.

5. Για να μετατρέψετε έναν δεκαδικό αριθμό στο οκταδικό σύστημα, πρέπει να διαιρεθεί διαδοχικά με το 8 έως ότου παραμείνει ένα υπόλοιπο μικρότερο ή ίσο του 7 Ένας αριθμός στο οκταδικό σύστημα γράφεται ως ακολουθία ψηφίων του αποτελέσματος της τελευταίας διαίρεσης υπόλοιπο της διαίρεσης με αντίστροφη σειρά.

Παράδειγμα.Μετατρέψτε τον αριθμό στο οκταδικό σύστημα αριθμών.

6. Για να μετατρέψετε έναν δεκαδικό αριθμό στο δεκαεξαδικό σύστημα, πρέπει να διαιρεθεί διαδοχικά με το 16 έως ότου υπάρχει υπόλοιπο μικρότερο ή ίσο του 15. Ένας αριθμός στο δεκαεξαδικό σύστημα γράφεται ως ακολουθία ψηφίων του αποτελέσματος της τελευταίας διαίρεσης και τα υπόλοιπα από τη διαίρεση με αντίστροφη σειρά.

Παράδειγμα.Μετατρέψτε τον αριθμό σε δεκαεξαδικό σύστημα αριθμών.

Κανόνας.Για να μετατρέψετε έναν αριθμό από ένα σύστημα αριθμών σε άλλο, πρέπει να διαιρέσετε τον αρχικό αριθμό με τη βάση του νέου συστήματος αριθμών. Διαιρέστε ξανά το πηλίκο που προκύπτει με τη βάση του νέου συστήματος αριθμών και συνεχίστε τη διαίρεση μέχρι τότε. έως ότου το πηλίκο είναι μικρότερο από τη βάση του νέου συστήματος αριθμών. Τα υπόλοιπα διαίρεσης που προκύπτουν, ξεκινώντας από το τελευταίο, γράφονται με αντίστροφη σειρά. Αυτή θα είναι η καταγραφή του αριθμού στο νέο σύστημα αριθμών.

Παράδειγμα.Μετατρέψτε τον αριθμό 135 από δεκαδικό SS σε 2άρια, οκταδικά και δεκαεξαδικά συστήματα αριθμών.

1) 2) 3)

Εργασία 2.

Μετατρέψτε τους παρακάτω αριθμούς σε δυαδικό, οκταδικό και δεκαεξαδικό SS: 1275,973, 172

Αντίστροφη μετατροπή αριθμών από οποιοδήποτε SS σε δεκαδικό.

1) Για να μετατρέψετε έναν αριθμό από οποιοδήποτε SS στο αρχικό SS (αντίστροφη μετάφραση),πρέπει να πολλαπλασιάσετε κάθε ψηφίο αυτού του αριθμού με τη βάση του αρχικού SS. ξεκινώντας από το μηδενικό ψηφίο από τα δεξιά προς τα αριστερά και προσθέστε τα προϊόντα. Εάν μετατρέπετε ένα δεκαδικό κλάσμα, θα πρέπει να εφαρμόσετε τον κανόνα για τη σύνταξη του ακέραιου και των κλασματικών μερών του αριθμού.

2) Η αντίστροφη μετάφραση των αριθμών πραγματοποιείται σύμφωνα με τον τύπο:

όπου Α είναι ένας δεδομένος αριθμός,

g – Βάση SS ενός δεδομένου αριθμού (=2 για 2-ary SS,για άλλα SS - παρόμοια),

m – ο αριθμός των ψηφίων στο ακέραιο μέρος του αριθμού.

n – αριθμός ψηφίων στο κλασματικό μέρος του αριθμού,

α – η τιμή των ψηφίων ενός δεδομένου αριθμού (το κλασματικό μέρος του αριθμού επισημαίνεται με μπλε χρώμα).

110110 2 = 1*2 5 +1*2 4 +0*2 3 +1*2 2 +1*2 1 +0*2 0 =54 10

66 8 =6*8 1 +6*8 0 =48+6=54 10 9A 16 =9*16 1 +10*16 0 =144+10=154 10

13,4 8 =1*8 1 +3*8 0 +4*8 -1 =8+3+0,5=11,5 10 (αυτός ο αριθμός είναι δεκαδικό κλάσμα)

Εργασία 3.

Μετατρέψτε τους παρακάτω αριθμούς σε δεκαδικό SS:

101,11 2 =5,75 10 1011001 2 1011,101 2

125,7 8 =86 10 1253 8 175,132 8

A19BA 16 =2585726… 10 16A3 16 2BAFD 16

Μετάφραση αριθμών με βάση που είναι δύναμη 2 και αντίστροφη μετάφραση.Αυτά τα συστήματα περιλαμβάνουν δυαδικά, οκταδικά και δεκαεξαδικά συστήματα αριθμών.



Κανόνας. Μετατροπή από δυαδικό SS σε οκταδικό SS. Ο δυαδικός αριθμός χωρίζεται σε ομάδες των 3 ψηφίων από το τέλος (από δεξιά προς τα αριστερά) και κάθε ομάδα μετατρέπεται σε έναν αριθμό σε ένα νέο SS

10.000.101 2 =205 8

111.000.101.100 2 =7054 8

1.011.001.101 2 =1315 8

Κανόνας. Για την αντίστροφη μετατροπή, κάθε οκταδικό ψηφίο γράφεται ως τριάδα.

Κανόνας. Από δυαδικό SS σε δεκαεξαδικό SS: παρόμοια, αλλά χωριστά 4 ψηφία το καθένα

0110.0110.1011 2 =66B 16

1011.1111.0111 2 =BF7 16

10.1010.0111.0001 2 =2A71 16

Κανόνας. Για την αντίστροφη μετατροπή, κάθε δεκαεξαδικό ψηφίο γράφεται ως τετράδιο.

Μετάφραση ορθών και ακατάλληλων κλασμάτων σε διαφορετικά ΣΣ.Εάν χρειάζεται να μετατρέψετε ένα κλάσμα, πρέπει πρώτα να το μετατρέψετε σε δεκαδικό και στη συνέχεια να εφαρμόσετε τους κανόνες για τη μετατροπή δεκαδικών κλασμάτων.

Κανόνας. Μετατροπή δεκαδικών κλασμάτων μικρότερων του ενός (κατάλληλα κλάσματα).

1) είναι απαραίτητο να διαχωρίσετε το κλασματικό μέρος με μια κάθετη γραμμή.

2) πολλαπλασιάστε το κλασματικό μέρος με βάση το νέο σύστημα αριθμών.

3) γράψτε το αποτέλεσμα αυστηρά κάτω από τον αρχικό αριθμό, ξεκινώντας από το λιγότερο σημαντικό ψηφίο. αν λάβετε μεταφορά σε ολόκληρο μέρος, τότε γράψτε το στα αριστερά της γραμμής.

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

0,728 10 =0,564 8

Εργασία 4.Μετατρέψτε τα ακόλουθα σωστά κλάσματα από δεκαδικό SS σε δυαδικό, οκταδικό, δεκαεξαδικό SS: .

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

Αριθμός

Μετατροπή από αριθμητικό σύστημα 10 2 8 16. Μετατροπή σε αριθμητικό σύστημα 2 10 8 16.
Για κλασματικούς αριθμούς, χρησιμοποιήστε 2 3 4 5 6 7 8 δεκαδικά ψηφία.

Μπορείτε να εισαγάγετε και ακέραιους αριθμούς, για παράδειγμα 34, και κλασματικούς αριθμούς, για παράδειγμα, 637.333. Για τους κλασματικούς αριθμούς, υποδεικνύεται η ακρίβεια μετάφρασης μετά την υποδιαστολή.

Τα ακόλουθα χρησιμοποιούνται επίσης με αυτήν την αριθμομηχανή:

Τρόποι αναπαράστασης αριθμών

Δυάδικος (δυαδικοί) αριθμοί - κάθε ψηφίο σημαίνει την τιμή ενός bit (0 ή 1), το πιο σημαντικό bit γράφεται πάντα στα αριστερά, το γράμμα "b" τοποθετείται μετά τον αριθμό. Για ευκολία αντίληψης, τα σημειωματάρια μπορούν να χωριστούν με κενά. Για παράδειγμα, 1010 0101b.
Δεκαεξαδικό (δεκαεξαδικοί) αριθμοί - κάθε τετράδα αντιπροσωπεύεται από ένα σύμβολο 0...9, A, B, ..., F. Αυτή η αναπαράσταση μπορεί να οριστεί με διαφορετικούς τρόπους εδώ μόνο το σύμβολο "h" χρησιμοποιείται μετά το τελευταίο δεκαεξαδικό ψηφίο. Για παράδειγμα, A5h. Στα κείμενα του προγράμματος, ο ίδιος αριθμός μπορεί να οριστεί είτε ως 0xA5 είτε ως 0A5h, ανάλογα με τη σύνταξη της γλώσσας προγραμματισμού. Ένα αρχικό μηδέν (0) προστίθεται στα αριστερά του πιο σημαντικού δεκαεξαδικού ψηφίου που αντιπροσωπεύεται από το γράμμα για τη διάκριση μεταξύ αριθμών και συμβολικών ονομάτων.
Δεκαδικός (δεκαδικοί) αριθμοί - κάθε byte (λέξη, διπλή λέξη) αντιπροσωπεύεται από έναν κανονικό αριθμό και το δεκαδικό σύμβολο αναπαράστασης (το γράμμα "d") συνήθως παραλείπεται. Το byte στα προηγούμενα παραδείγματα έχει δεκαδική τιμή 165. Σε αντίθεση με τον δυαδικό και δεκαεξαδικό συμβολισμό, το δεκαδικό είναι δύσκολο να προσδιοριστεί νοερά η τιμή κάθε bit, κάτι που μερικές φορές είναι απαραίτητο.
Οκτάεδρος (οκταδικοί) αριθμοί - κάθε τριπλό bit (η διαίρεση ξεκινά από το λιγότερο σημαντικό) γράφεται ως αριθμός 0–7, με ένα «o» στο τέλος. Ο ίδιος αριθμός θα γραφόταν ως 245ο. Το οκταδικό σύστημα δεν είναι βολικό επειδή το byte δεν μπορεί να διαιρεθεί ίσα.

Αλγόριθμος για τη μετατροπή αριθμών από ένα σύστημα αριθμών σε άλλο

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

Παράδειγμα Νο. 1.



Μετατροπή από 2 σε 8 σε 16 αριθμητικό σύστημα.
Αυτά τα συστήματα είναι πολλαπλάσια των δύο, επομένως η μετάφραση πραγματοποιείται χρησιμοποιώντας έναν πίνακα αντιστοιχίας (βλ. παρακάτω).

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

Παράδειγμα Νο. 2. 1010111010.1011 = 1.010.111.010.101.1 = 1272.51 8
εδώ 001=1; 010=2; 111=7; 010=2; 101=5; 001=1

Κατά τη μετατροπή στο δεκαεξαδικό σύστημα, πρέπει να διαιρέσετε τον αριθμό σε μέρη τεσσάρων ψηφίων, ακολουθώντας τους ίδιους κανόνες.
Παράδειγμα Νο. 3. 1010111010,1011 = 10.1011.1010,1011 = 2B12,13 HEX
εδώ 0010=2; 1011=B; 1010=12; 1011=13

Η μετατροπή των αριθμών από το 2, το 8 και το 16 στο δεκαδικό σύστημα πραγματοποιείται με σπάσιμο του αριθμού σε μεμονωμένους και πολλαπλασιασμό του με τη βάση του συστήματος (από το οποίο μεταφράζεται ο αριθμός) που αυξάνεται στην ισχύ που αντιστοιχεί στον αύξοντα αριθμό του ο αριθμός που μετατρέπεται. Σε αυτήν την περίπτωση, οι αριθμοί αριθμούνται στα αριστερά της υποδιαστολής (ο πρώτος αριθμός αριθμείται 0) με αύξηση, και στα δεξιά με φθίνουσα (δηλαδή, με αρνητικό πρόσημο). Τα αποτελέσματα που λαμβάνονται αθροίζονται.

Παράδειγμα αρ. 4.
Ένα παράδειγμα μετατροπής από δυαδικό σε δεκαδικό σύστημα αριθμών.

1010010.101 2 = 1·2 6 +0·2 5 +1·2 4 +0·2 3 +0·2 2 +1·2 1 +0·2 0 + 1·2 -1 +0·2 - 2 + 1 2 -3 =
= 64+0+16+0+0+2+0+0,5+0+0,125 = 82,625 10 Παράδειγμα μετατροπής από οκταδικό σε δεκαδικό σύστημα αριθμών. 108,5 8 = 1*·8 2 +0·8 1 +8·8 0 + 5·8 -1 = 64+0+8+0,625 = 72,625 10 Παράδειγμα μετατροπής από δεκαεξαδικό σε δεκαδικό σύστημα αριθμών. 108,5 16 = 1·16 2 +0·16 1 +8·16 0 + 5·16 -1 = 256+0+8+0,3125 = 264,3125 10

Για άλλη μια φορά επαναλαμβάνουμε τον αλγόριθμο για τη μετατροπή αριθμών από ένα σύστημα αριθμών σε ένα άλλο PSS

  1. Από το δεκαδικό σύστημα αριθμών:
    • διαιρέστε τον αριθμό με τη βάση του συστήματος αριθμών που μεταφράζεται.
    • Να βρείτε το υπόλοιπο κατά τη διαίρεση ενός ακέραιου μέρους ενός αριθμού.
    • καταγράψτε όλα τα υπόλοιπα από τη διαίρεση με αντίστροφη σειρά.
  2. Από το δυαδικό σύστημα αριθμών
    • Για τη μετατροπή στο δεκαδικό σύστημα αριθμών, είναι απαραίτητο να βρεθεί το άθροισμα των γινομένων της βάσης 2 με τον αντίστοιχο βαθμό ψηφίου.
    • Για να μετατρέψετε έναν αριθμό σε οκταδικό, πρέπει να χωρίσετε τον αριθμό σε τριάδες.
      Για παράδειγμα, 1000110 = 1.000 110 = 106 8
    • Για να μετατρέψετε έναν αριθμό από δυαδικό σε δεκαεξαδικό, πρέπει να διαιρέσετε τον αριθμό σε ομάδες των 4 ψηφίων.
      Για παράδειγμα, 1000110 = 100 0110 = 46 16
Το σύστημα ονομάζεται θέσιο, για το οποίο η σημασία ή το βάρος ενός ψηφίου εξαρτάται από τη θέση του στον αριθμό. Η σχέση μεταξύ των συστημάτων εκφράζεται σε έναν πίνακα.
Πίνακας αντιστοιχίας συστήματος αριθμών:
Δυαδικό SSΔεκαεξαδικό SS
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 ΕΝΑ
1011 σι
1100 ντο
1101 ρε
1110 μι
1111 φά

Πίνακας για μετατροπή σε οκταδικό αριθμητικό σύστημα

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

Πίνακας 1 - Αναπαράσταση αριθμών σε διάφορα συστήματα
λογισμός (αρχή)

Αριθμητικά συστήματα

Δεκαδικός

Δυάδικος

Οκτάεδρος

Δεκαεξαδικό

BCD

Για να μετατρέψετε από δεκαδικό σε δυαδικό, έχετε δύο επιλογές.

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

Βήμα προς βήμα: Το 37 είναι περιττός αριθμός, που σημαίνει 1 , τότε 36/2 = 18. Ο αριθμός είναι άρτιος, που σημαίνει 0. Το 18/2 = 9 είναι περιττός αριθμός, που σημαίνει 1 , τότε 8/2 = 4. Ο αριθμός είναι άρτιος, διαβάστε 0. 4/2 = 2, ένας ζυγός αριθμός σημαίνει 0, 2/2 = 1.

Έτσι πήραμε τον αριθμό. Μην ξεχάσετε να μετρήσετε από τα δεξιά προς τα αριστερά: 100101 - τώρα έχουμε έναν αριθμό στο δυαδικό σύστημα. Γενικά, αυτό γράφεται ως διαίρεση σε μια στήλη, όπως βλέπετε στο παρακάτω σχήμα:

2) Υπάρχει όμως και δεύτερος τρόπος. Μου αρέσει περισσότερο. Η μεταφορά από το ένα σύστημα στο άλλο γίνεται ως εξής:

όπου ai είναι το i-ο ψηφίο του αριθμού.
k - ο αριθμός των ψηφίων στο κλασματικό μέρος του αριθμού.
m - ο αριθμός των ψηφίων στο ακέραιο μέρος του αριθμού.
Το N είναι η βάση του συστήματος αριθμών.

Η βάση του αριθμητικού συστήματος N δείχνει πόσες φορές το «βάρος» του i-ου ψηφίου είναι μεγαλύτερο από το «βάρος» (i-1) του ψηφίου. Το ακέραιο μέρος ενός αριθμού χωρίζεται από το κλασματικό μέρος με μια τελεία (κόμμα).

Το ακέραιο μέρος του αριθμού AN1, με τη βάση N1, μετατρέπεται στο σύστημα αριθμών με τη βάση N2 διαιρώντας διαδοχικά το ακέραιο μέρος του αριθμού AN1 με τη βάση N2 που γράφεται ως αριθμός με τη βάση N1, έως ότου γίνει ένα υπόλοιπο λαμβάνεται Το προκύπτον τμήμα διαιρείται και πάλι με τη βάση N2 και αυτή η διαδικασία πρέπει να επαναληφθεί έως ότου το σωματίδιο γίνει μικρότερο από τον διαιρέτη. Τα υπόλοιπα που προκύπτουν από τη διαίρεση και το τελευταίο μέρος γράφονται με την αντίστροφη σειρά που προκύπτει κατά τη διαίρεση. Ο παραγόμενος αριθμός θα είναι ακέραιος με βάση N2.

Το κλασματικό τμήμα του αριθμού ΑΝ1, με βάση Ν1, μετατρέπεται σε σύστημα αριθμών με βάση Ν2 πολλαπλασιάζοντας διαδοχικά το κλασματικό μέρος του αριθμού ΑΝ1 με τη βάση Ν2, που γράφεται ως αριθμός με βάση Ν1. Με κάθε πολλαπλασιασμό, το ακέραιο μέρος του γινομένου λαμβάνεται με τη μορφή του επόμενου ψηφίου του αντίστοιχου ψηφίου και το κλασματικό μέρος του υπόλοιπου λαμβάνεται ως νέος πολλαπλασιασμός. Ο αριθμός των πολλαπλασιασμών καθορίζει την ψηφιακή χωρητικότητα του προκύπτοντος αποτελέσματος, αντιπροσωπεύοντας το κλασματικό μέρος του αριθμού AN1 στο σύστημα αριθμών N2. Το κλασματικό μέρος ενός αριθμού συχνά αναπαρίσταται ανακριβώς όταν μεταφράζεται.

Ας το κάνουμε αυτό με ένα παράδειγμα:

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

Το 37 στο δεκαδικό πρέπει να μετατραπεί σε δυαδικό. Ας δουλέψουμε με πτυχία:

2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1024 και ούτω καθεξής... επ' άπειρον

Αυτό σημαίνει: 37 - 32 = 5. 5 - 4 = 1. Η απάντηση είναι η εξής δυαδικά: 100101.

Ας μετατρέψουμε τον αριθμό 658 από δεκαδικό σε δυαδικό:

658-512=146
146-128=18
18-16=2. Στο δυαδικό σύστημα ο αριθμός θα μοιάζει με: 1010010010.

Μετατροπή από δεκαδικό σε οκταδικό

Εάν χρειάζεται να κάνετε μετατροπή από δεκαδικό σε οκταδικό, πρέπει πρώτα να μετατρέψετε σε δυαδικό και στη συνέχεια να μετατρέψετε από δυαδικό σε οκταδικό. Δηλαδή, είναι πιο εύκολο με αυτόν τον τρόπο, αν και μπορείτε να το μεταφράσετε αμέσως. Χρησιμοποιώντας έναν αλγόριθμο παρόμοιο με αυτόν για τη μετατροπή σε δυαδικό, βλέπε παραπάνω.

Μετατροπή από δεκαδικό σε δεκαεξαδικό

Εάν χρειάζεται να κάνετε μετατροπή από δεκαδικό σε δεκαεξαδικό, πρέπει πρώτα να μετατρέψετε σε δυαδικό και στη συνέχεια να μετατρέψετε από δυαδικό σε δεκαεξαδικό. Δηλαδή, είναι πιο εύκολο με αυτόν τον τρόπο, αν και μπορείτε να το μεταφράσετε αμέσως. Χρησιμοποιώντας έναν αλγόριθμο παρόμοιο με αυτόν για τη μετατροπή σε δυαδικό, βλέπε παραπάνω.

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

Για να μετατρέψετε έναν αριθμό από δυαδικό σε οκταδικό, πρέπει να χωρίσετε το δυαδικό σε τρεις αριθμούς.

Για παράδειγμα, ο αριθμός 1010010010 που προκύπτει χωρίζεται σε τρεις αριθμούς και η διαίρεση γίνεται από τα δεξιά προς τα αριστερά: 1.010.010.010 = 1222. Δείτε τον πίνακα στην αρχή.

Μετατροπή από δυαδικό σε δεκαεξαδικό

Για να μετατρέψετε έναν αριθμό από δυαδικό σε δεκαεξαδικό, πρέπει να τον διαιρέσετε σε τετράδια (τέσσερα το καθένα)

10 1001 0010 = 292

Ακολουθούν μερικά παραδείγματα για να δείτε:

Η μετατροπή γίνεται από δυαδικό σε οκταδικό, μετά σε δεκαεξαδικό και μετά από δυαδικό σε δεκαδικό

(2) = 11101110
(8) = 11 101 110 = 276
(16) = 1110 1110 = ΕΕ
(10) = 1*128+ 1*64+ 1*32+ 0 +1*8 + 1*4 + 1*2+ 0= 238
3) (8) = 657

Η μετατροπή πραγματοποιείται από δεκαεξαδικό σε δυαδικό, μετά σε οκταδικό και στη συνέχεια από δυαδικό σε δεκαδικό

(16) = 6E8
(2) = 110 1110 1000
(8) = 11 011 101 000 = 2250
(10) = 1*1024+1*512+ 0 +1*128+ 1*64+ 1*32+ 8 = 1768

Όταν δημιουργείτε δίκτυα διαφόρων μεγεθών και ασχολείστε με υπολογισμούς καθημερινά, δεν χρειάζεται να δημιουργείτε αυτού του είδους το φύλλο εξαπάτησης, όλα γίνονται με ένα αντανακλαστικό άνευ όρων. Όμως, όταν περιηγείστε σε δίκτυα πολύ σπάνια, δεν θυμάστε πάντα ποια είναι η μάσκα σε δεκαδική μορφή για το πρόθεμα 21 ή ποια είναι η διεύθυνση δικτύου για το ίδιο πρόθεμα. Από αυτή την άποψη, αποφάσισα να γράψω πολλά μικρά άρθρα - φύλλα εξαπάτησης για τη μετατροπή αριθμών σε διάφορα συστήματα αριθμών, διευθύνσεις δικτύου, μάσκες κ.λπ. Σε αυτό το μέρος θα μιλήσουμε για τη μετατροπή αριθμών σε διαφορετικά συστήματα αριθμών.

1. Αριθμητικά συστήματα

Όταν κάνετε οτιδήποτε σχετίζεται με δίκτυα υπολογιστών και IT, θα συναντήσετε αυτήν την έννοια ούτως ή άλλως. Και ως έξυπνος τύπος πληροφορικής, πρέπει να το καταλάβετε αυτό τουλάχιστον λίγο, ακόμα κι αν στην πράξη θα το χρησιμοποιείτε πολύ σπάνια.
Εξετάστε τη μετάφραση κάθε ψηφίου από μια διεύθυνση IP 98.251.16.138 στα ακόλουθα αριθμητικά συστήματα:

  • Δυάδικος
  • Οκτάεδρος
  • Δεκαδικός
  • Δεκαεξαδικό

1.1 Δεκαδικό

Δεδομένου ότι οι αριθμοί είναι γραμμένοι με δεκαδικό, θα παραλείψουμε τη μετατροπή από δεκαδικό σε δεκαδικό :)

1.1.1 Δεκαδικό → Δυαδικό

Όπως γνωρίζουμε, το δυαδικό σύστημα αριθμών χρησιμοποιείται σχεδόν σε όλους τους σύγχρονους υπολογιστές και σε πολλές άλλες υπολογιστικές συσκευές. Το σύστημα είναι πολύ απλό - έχουμε μόνο 0 και 1.
Για να μετατρέψετε έναν αριθμό με δέκατο σε δυαδική μορφή, πρέπει να χρησιμοποιήσετε το modulo διαίρεσης 2 (δηλαδή διαίρεση ακέραιου αριθμού με το 2), ως αποτέλεσμα του οποίου θα έχουμε πάντα ένα υπόλοιπο είτε 1 είτε 0. Σε αυτήν την περίπτωση, το αποτέλεσμα είναι γραμμένο από δεξιά προς τα αριστερά. Ένα παράδειγμα θα βάλει τα πάντα στη θέση τους:


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


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

Θα περιγράψω τη διαίρεση του αριθμού 98. Διαιρούμε το 98 με το 2, ως αποτέλεσμα έχουμε 49 και το υπόλοιπο είναι 0. Στη συνέχεια συνεχίζουμε τη διαίρεση και διαιρούμε το 49 με το 2, με αποτέλεσμα να έχουμε 24 με υπόλοιπο 1. Και με τον ίδιο τρόπο φτάνουμε στο 1 ή το 0 σε διαιρούμενο. Στη συνέχεια γράφουμε το αποτέλεσμα από δεξιά προς τα αριστερά.

1.1.2 Δεκαδικό → Οκταδ

Το οκταδικό σύστημα είναι ένα ακέραιο αριθμητικό σύστημα με βάση το 8. Δηλ. όλοι οι αριθμοί σε αυτό αντιπροσωπεύονται στην περιοχή 0 – 7 και για να μετατρέψετε από το δεκαδικό σύστημα πρέπει να χρησιμοποιήσετε το modulo διαίρεσης 8.


Εικόνα 1.3 – Μετατροπή αριθμών από δεκαδικό σε οκταδικό σύστημα

Η διαίρεση είναι παρόμοια με το σύστημα των 2 σημείων.

1.1.3 Δεκαδικό → Δεκαεξαδικό

Το δεκαεξαδικό σύστημα έχει σχεδόν πλήρως αντικαταστήσει το οκταδικό σύστημα. Έχει βάση το 16, αλλά χρησιμοποιεί δεκαδικά ψηφία από το 0 έως το 9 + λατινικά γράμματα από το A (αριθμός 10) έως το F (αριθμός 15). Το συναντάτε κάθε φορά που ελέγχετε τις ρυθμίσεις του προσαρμογέα δικτύου σας - αυτή είναι η διεύθυνση MAC. Το ίδιο όταν χρησιμοποιείται το IPv6.


Εικόνα 1.4 – Μετατροπή αριθμών από δεκαδικό σε δεκαεξαδικό

1.2 Δυαδικό

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

1.2.1 Δυαδικό → Δεκαδικό

Για να μετατρέψετε αριθμούς από δυαδικούς σε δεκαδικούς, πρέπει να γνωρίζετε δύο αποχρώσεις. Το πρώτο είναι ότι κάθε μηδέν και ένα έχουν συντελεστή 2 προς την ν η ισχύ, στην οποία το n αυξάνεται από δεξιά προς τα αριστερά κατά ακριβώς ένα. Το δεύτερο είναι ότι μετά τον πολλαπλασιασμό πρέπει να προστεθούν όλοι οι αριθμοί και θα πάρουμε τον αριθμό σε δεκαδική μορφή. Ως αποτέλεσμα, θα έχουμε έναν τύπο όπως αυτός:

D = (a n × p n-1) + (a n-1 × p n-2) + (a n-2 × p n-3) +…, (1.2.1)

Οπου,
D είναι ο δεκαδικός αριθμός που αναζητούμε.
n– ο αριθμός των χαρακτήρων σε έναν δυαδικό αριθμό.
α – ένας αριθμός σε δυαδική μορφή στην ντη θέση (δηλαδή ο πρώτος χαρακτήρας, ο δεύτερος κ.λπ.).
p – συντελεστής ίσος με 2,8 ή 16 προς την ισχύ n(ανάλογα με το σύστημα αριθμών)

Για παράδειγμα, ας πάρουμε τον αριθμό 110102. Εξετάζουμε τον τύπο και γράφουμε:

  • Ο αριθμός αποτελείται από 5 χαρακτήρες ( n=5)
  • a 5 = 1, a 4 = 1, a 3 = 0, a 2 = 1, a 1 = 0

  • p = 2 (αφού μετατρέπουμε από δυαδικό σε δεκαδικό)

Ως αποτέλεσμα έχουμε:

D = (1 × 2 5-1) + (1 × 2 5-2) + (0 × 2 5-3) + (1 × 2 5-4) + (0 × 2 5-5) = 16 + 8 + 0 + 2 + 0 = 26 10

Για όσους συνηθίζουν να γράφουν από δεξιά προς τα αριστερά, η φόρμα θα μοιάζει με αυτό:

D = (0 × 2 5-5) + (1 × 2 5-4) + (0 × 2 5-3) + (1 × 2 5-2) + (1 × 2 5-1) = 0 + 2 + 0 + 8 + 16 = 26 10

Όμως, όπως γνωρίζουμε, η αναδιάταξη των όρων δεν αλλάζει το άθροισμα. Ας μετατρέψουμε τώρα τους αριθμούς μας σε δεκαδική μορφή.


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

1.2.2 Δυαδικό → Οκταδ

Κατά τη μετάφραση, πρέπει να χωρίσουμε τον δυαδικό αριθμό σε ομάδες των τριών χαρακτήρων από δεξιά προς τα αριστερά. Εάν η τελευταία ομάδα δεν αποτελείται από τρεις χαρακτήρες, τότε απλώς αντικαθιστούμε τα bit που λείπουν με μηδενικά. Π.χ:

10101001 = 0 10 101 001

1011100 = 00 1 011 100

Κάθε ομάδα bit είναι ένας από τους οκταδικούς αριθμούς. Για να μάθετε ποιο, πρέπει να χρησιμοποιήσετε τον τύπο 1.2.1 που γράφτηκε παραπάνω για κάθε ομάδα bit. Ως αποτέλεσμα παίρνουμε.


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

1.2.3 Δυαδικό → Δεκαεξαδικό

Εδώ πρέπει να χωρίσουμε τον δυαδικό αριθμό σε ομάδες τεσσάρων χαρακτήρων από τα δεξιά προς τα αριστερά, ακολουθούμενο από την προσθήκη μηδενικών στα bit της ομάδας που λείπουν, όπως περιγράφεται παραπάνω. Εάν η τελευταία ομάδα αποτελείται από μηδενικά, τότε θα πρέπει να αγνοηθούν.

110101011 = 000 1 1010 1011

1011100 = 0 101 1100

001010000 = 00 0101 0000 = 0101 0000

Κάθε ομάδα bit είναι ένας από τους δεκαεξαδικούς αριθμούς. Χρησιμοποιούμε τον τύπο 1.2.1 για κάθε ομάδα bit.


Εικόνα 1.7 – Μετατροπή αριθμών από δυαδικό σε δεκαεξαδικό

1.3 Οκταδ

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

1.3.1 Οκταδικό → Δυαδικό

Κάθε αριθμός στο οκταδικό σύστημα είναι μια ομάδα τριών bit στο δυαδικό σύστημα, όπως περιγράφεται παραπάνω. Για να μεταφράσουμε, πρέπει να χρησιμοποιήσουμε ένα φύλλο εξαπάτησης:


Εικόνα 1.8 – Σπιρούνι για μετατροπή αριθμών από το οκταδικό σύστημα

Χρησιμοποιώντας αυτό το tablet, θα μετατρέψουμε τους αριθμούς μας στο δυαδικό σύστημα.


Εικόνα 1.9 – Μετατροπή αριθμών από οκταδικό σε δυαδικό

Θα περιγράψω λίγο το συμπέρασμα. Ο πρώτος μας αριθμός είναι 142, που σημαίνει ότι θα υπάρχουν τρεις ομάδες των τριών bit η καθεμία. Χρησιμοποιούμε το σπιρούνι και βλέπουμε ότι ο αριθμός 1 είναι 001, ο αριθμός 4 είναι 100 και ο αριθμός 2 είναι 010. Ως αποτέλεσμα, έχουμε τον αριθμό 001100010.

1.3.2 Οκταδικό → Δεκαδικό

Εδώ χρησιμοποιούμε τον τύπο 1.2.1 μόνο με συντελεστή 8 (δηλαδή p=8). Ως αποτέλεσμα έχουμε


Εικόνα 1.10 – Μετατροπή αριθμών από οκταδικό σε δεκαδικό σύστημα

  • Ο αριθμός αποτελείται από 3 χαρακτήρες ( n=3)
  • a 3 = 1, a 2 = 4, a 1 = 2

  • p = 8 (αφού μετατρέπουμε από οκταδικό σε δεκαδικό)

Ως αποτέλεσμα έχουμε:

D = (1 × 8 3-1) + (4 × 8 3-2) + (2 × 8 3-3) = 64 + 32 + 2 = 98 10

1.3.3 Οκταδικό → Δεκαεξαδικό

Όπως γράφτηκε προηγουμένως, για να μεταφράσουμε, πρέπει πρώτα να μετατρέψουμε τους αριθμούς στο δυαδικό σύστημα, στη συνέχεια από το δυαδικό σε δεκαεξαδικό, χωρίζοντάς τους σε ομάδες των 4 bit. Μπορείτε να χρησιμοποιήσετε την ακόλουθη ώθηση.


Εικόνα 1.11 – Σπιρούνι για μετατροπή αριθμών από το δεκαεξαδικό σύστημα

Αυτός ο πίνακας θα σας βοηθήσει να μετατρέψετε από δυαδικό σε δεκαεξαδικό. Τώρα ας μετατρέψουμε τους αριθμούς μας.


Εικόνα 1.12 – Μετατροπή αριθμών από οκταδικό σε δεκαεξαδικό

1.4 Δεκαεξαδικό

Αυτό το σύστημα έχει το ίδιο πρόβλημα κατά τη μετατροπή σε οκταδικό. Αλλά περισσότερα για αυτό αργότερα.

1.4.1 Hex → Binary

Κάθε αριθμός στο δεκαεξαδικό είναι μια ομάδα τεσσάρων bit σε δυαδικό, όπως περιγράφεται παραπάνω. Για να μεταφράσουμε, μπορούμε να χρησιμοποιήσουμε το cheat sheet που βρίσκεται παραπάνω. Σαν άποτέλεσμα:


Εικόνα 1.13 – Μετατροπή αριθμών από δεκαεξαδικό σε δυαδικό

Ας πάρουμε τον πρώτο αριθμό - 62. Χρησιμοποιώντας τον πίνακα (Εικ. 1.11) βλέπουμε ότι το 6 είναι 0110, το 2 είναι 0010, με αποτέλεσμα να έχουμε τον αριθμό 01100010.

1.4.2 Εξαγωνικό → Δεκαδικό

Εδώ χρησιμοποιούμε τον τύπο 1.2.1 μόνο με συντελεστή 16 (δηλαδή p=16). Ως αποτέλεσμα έχουμε


Εικόνα 1.14 – Μετατροπή αριθμών από δεκαεξαδικό σε δεκαδικό

Ας πάρουμε τον πρώτο αριθμό. Με βάση τον τύπο 1.2.1:

  • Ο αριθμός αποτελείται από 2 χαρακτήρες ( n=2)
  • α 2 = 6, α 1 = 2

  • p = 16 (αφού μετατρέπουμε από δεκαεξαδικό σε δεκαδικό)

Ως αποτέλεσμα έχουμε.

D = (6 × 16 2-1) + (2 × 16 2-2) = 96 + 2 = 98 10

1.4.3 Hex → Octal

Για να μετατρέψετε στο οκταδικό σύστημα, πρέπει πρώτα να το μετατρέψετε σε δυαδικό, μετά να το χωρίσετε σε ομάδες των 3 bit και να χρησιμοποιήσετε τον πίνακα (Εικ. 1.8). Σαν άποτέλεσμα:


Εικόνα 1.15 – Μετατροπή αριθμών από δεκαεξαδικό σε οκταδικό

Θα μιλήσουμε για διευθύνσεις IP, μάσκες και δίκτυα.