Τι είναι ένα θεσιακό σύστημα
Στον δεκαδικό αριθμό 4.095 το 4 δεν αξίζει 4: αξίζει 4.000, επειδή βρίσκεται στη θέση των χιλιάδων. Κάθε θέση πολλαπλασιάζει το ψηφίο με μια δύναμη του 10 (1, 10, 100, 1.000…). Αυτό είναι το θεσιακό σύστημα, και η βάση είναι το πλήθος των διαφορετικών ψηφίων που χρησιμοποιούνται: δέκα στο δεκαδικό.
Το δυαδικό λειτουργεί με τον ίδιο τρόπο, αλλά με βάση 2: υπάρχουν μόνο το 0 και το 1, και κάθε θέση αξίζει το διπλάσιο της προηγούμενης. Το δεκαεξαδικό χρησιμοποιεί βάση 16: τα δεκαέξι ψηφία είναι τα 0 έως 9 και τα γράμματα A έως F, και κάθε θέση αξίζει 16 φορές την προηγούμενη. Οι υπολογιστές δουλεύουν σε δυαδικό επειδή ένα κύκλωμα χρειάζεται να ξεχωρίζει μόνο δύο καταστάσεις (σβηστό και αναμμένο), και το δεκαεξαδικό είναι ένας σύντομος τρόπος να γράφονται αυτά τα bit.
| Θέση (από δεξιά προς τα αριστερά) | Τιμή σε δυαδικό | Τιμή σε δεκαεξαδικό |
|---|---|---|
| 1η | 1 | 1 |
| 2η | 2 | 16 |
| 3η | 4 | 256 |
| 4η | 8 | 4.096 |
| 5η | 16 | 65.536 |
| 6η | 32 | 1.048.576 |
| 7η | 64 | 16.777.216 |
| 8η | 128 | 268.435.456 |
Από δυαδικό σε δεκαδικό, με το χέρι
Γράφετε κάθε ψηφίο με την τιμή της θέσης του και προσθέτετε μόνο τις θέσεις όπου υπάρχει 1. Παράδειγμα με το 1101: από δεξιά προς τα αριστερά οι θέσεις αξίζουν 1, 2, 4 και 8.
- Γράψτε τον αριθμό και από κάτω την τιμή κάθε θέσης: 1 1 0 1 πάνω από 8 4 2 1.
- Δείτε τι υπάρχει σε κάθε θέση: ένα 1 στη θέση του 8, ένα 1 στη θέση του 4, ένα 0 στη θέση του 2 και ένα 1 στη θέση του 1.
- Αγνοήστε τις θέσεις που έχουν 0 (εδώ, τη θέση του 2).
- Προσθέστε: 8 + 4 + 0 + 1 = 13. Άρα το 1101 στο δυαδικό είναι 13 στο δεκαδικό.
Με περισσότερα ψηφία είναι το ίδιο: το 11111111 είναι 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, η μεγαλύτερη τιμή που χωράει σε 8 bit. Και το 10110110 είναι 128 + 32 + 16 + 4 + 2 = 182.
Από δεκαδικό σε δυαδικό, με διαδοχικές διαιρέσεις
Διαιρείτε τον αριθμό με το 2 ξανά και ξανά, σημειώνοντας το υπόλοιπο κάθε διαίρεσης (πάντα 0 ή 1), μέχρι να φτάσετε σε πηλίκο 0. Τα υπόλοιπα, διαβασμένα από κάτω προς τα πάνω, είναι ο δυαδικός αριθμός. Παράδειγμα με το 45:
- 45 ÷ 2 = 22, υπόλοιπο 1
- 22 ÷ 2 = 11, υπόλοιπο 0
- 11 ÷ 2 = 5, υπόλοιπο 1
- 5 ÷ 2 = 2, υπόλοιπο 1
- 2 ÷ 2 = 1, υπόλοιπο 0
- 1 ÷ 2 = 0, υπόλοιπο 1
Διαβάζοντας τα υπόλοιπα από κάτω προς τα πάνω βγαίνει 101101. Για έλεγχο, προσθέστε: 32 + 8 + 4 + 1 = 45.
Υπάρχει και μια εναλλακτική μέθοδος που πολλοί προτιμούν: να αφαιρείτε δυνάμεις του 2 από τη μεγαλύτερη προς τη μικρότερη. Για το 200: χωράει το 128 (μένουν 72), χωράει το 64 (μένουν 8), δεν χωράνε το 32 και το 16, αλλά χωράει το 8 (μένουν 0). Οι θέσεις που χρησιμοποιήθηκαν είναι 128, 64 και 8, άρα 200 = 11001000.
Δεκαεξαδικό: δεκαέξι ψηφία και ένας πίνακας πρόχειρος
Επειδή δεν υπάρχουν ψηφία για το 10 έως το 15, χρησιμοποιούνται τα γράμματα A, B, C, D, E και F. Ένα δεκαεξαδικό ψηφίο ισοδυναμεί ακριβώς με τέσσερα bit (ένα «nibble»), και γι' αυτό είναι τόσο βολικό: ένα byte, των 8 bit, γράφεται με μόλις δύο δεκαεξαδικά ψηφία.
Για να περάσετε από δεκαεξαδικό σε δεκαδικό, πολλαπλασιάστε κάθε ψηφίο με τη δύναμη του 16 της θέσης του και προσθέστε. Για παράδειγμα, 3F = 3 × 16 + 15 = 63 και A3 = 10 × 16 + 3 = 163.
| Δεκαδικό | Δυαδικό (4 bit) | Οκταδικό | Δεκαεξαδικό |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Γιατί χρησιμοποιείται το δεκαεξαδικό: byte, χρώματα και διευθύνσεις
Ένα byte είναι 8 bit και κυμαίνεται από 0 έως 255 (00000000 έως 11111111). Το να γράφετε bit με το χέρι είναι αργό και επιρρεπές σε λάθη· σε δεκαεξαδικό το ίδιο byte είναι δύο χαρακτήρες, από 00 έως FF. Για να περάσετε από δυαδικό σε δεκαεξαδικό, χωρίστε τα bit σε ομάδες των τεσσάρων ξεκινώντας από δεξιά και αντικαταστήστε κάθε ομάδα με το ψηφίο της από τον πίνακα. Παράδειγμα: το 11010111 χωρίζεται σε 1101 και 0111, που είναι D και 7, άρα αξίζει D7. Σε δεκαδικό είναι 13 × 16 + 7 = 215.
Η πιο γνωστή περίπτωση είναι τα χρώματα του ιστού. Στο #FF8800 υπάρχουν τρία byte: FF για το κόκκινο (255), 88 για το πράσινο (136) και 00 για το μπλε (0). Είναι ένα έντονο πορτοκαλί: όλο το κόκκινο, λίγο περισσότερο από το μισό του πράσινου και καθόλου μπλε. Το δεκαεξαδικό εμφανίζεται επίσης σε διευθύνσεις μνήμης, σε κωδικούς σφάλματος και σε αναγνωριστικά δικτύου.
Από κείμενο σε δυαδικό με ASCII
Ένας υπολογιστής αποθηκεύει κάθε γράμμα ως αριθμό, και αυτόν τον αριθμό ως bit. Στον πίνακα ASCII το A είναι 65, που στο δυαδικό των 8 bit είναι 01000001. Η λέξη «Hi» είναι δύο γράμματα: το H είναι 72 (01001000) και το i είναι 105 (01101001), άρα γράφεται 01001000 01101001. Με το «Hola» είναι 72, 111, 108 και 97, δηλαδή 01001000 01101111 01101100 01100001, ή σε δεκαεξαδικό 48 6F 6C 61.
Το εργαλείο χρησιμοποιεί την κωδικοποίηση UTF-8: για τα βασικά αγγλικά γράμματα κάθε χαρακτήρας καταλαμβάνει ένα byte των 8 bit, αλλά ένα ñ, ένα γράμμα με τόνο ή ένα emoji καταλαμβάνουν περισσότερα byte, οπότε δίνουν πάνω από 8 bit. Για παράδειγμα, το ñ είναι δύο byte: 11000011 10110001 (C3 B1 σε δεκαεξαδικό).
Πώς να τα κάνετε όλα αυτά με το εργαλείο
Ο μετατροπέας «Δυαδικό, δεκαδικό και hex» χρησιμεύει για να ελέγχετε τους υπολογισμούς σας ή να λύνετε μεγάλους αριθμούς χωρίς λάθη.
- Γράψτε τον αριθμό στο πεδίο της βάσης του: «Δεκαδικό (βάση 10)», «Δυαδικό (βάση 2)», οκταδικό ή «Δεκαεξαδικό (βάση 16)». Τα άλλα τρία συμπληρώνονται μόνα τους.
- Αν το ψηφίο δεν αντιστοιχεί στη βάση (ένα 2 σε δυαδικό, για παράδειγμα), το εργαλείο σας ειδοποιεί.
- Για κείμενο, γράψτε το στο πεδίο «Κείμενο» και δείτε το «Δυαδικό (8 bit ανά χαρακτήρα)» και το δεκαεξαδικό ανά byte. Μπορείτε επίσης να επικολλήσετε bit σε ομάδες των 8 για να γυρίσετε στο κείμενο.
- Για ασυνήθιστες βάσεις, χρησιμοποιήστε το «Οποιαδήποτε βάση (από 2 έως 36)»: επιλέγετε τη βάση προέλευσης, τη βάση προορισμού και τον αριθμό.
Τα όρια: μετατρέπει μόνο μη αρνητικούς ακέραιους (χωρίς δεκαδικά ή πρόσημο) και δεν βάζει μηδενικά αριστερά για λογαριασμό σας, οπότε αν θέλετε σταθερά 8 bit πρέπει να συμπληρώσετε με το χέρι (το 13 είναι 00001101). Τίποτα από όσα γράφετε δεν φεύγει από το πρόγραμμα περιήγησής σας.
Συχνά λάθη
- Να διαβάσετε τα υπόλοιπα ανάποδα: στις διαδοχικές διαιρέσεις το πρώτο υπόλοιπο είναι το ψηφίο στα δεξιά, όχι αυτό στα αριστερά.
- Να ξεχάσετε τα μηδενικά αριστερά όταν χρειάζονται: το 13 είναι 1101, αλλά ως byte είναι 00001101. Έχει σημασία όταν το μήκος είναι μέρος της πληροφορίας, όπως σε ένα χρώμα ή σε μια μάσκα δικτύου.
- Να μπερδέψετε το γράμμα O με το μηδέν ή το δεκαεξαδικό B (11) με ένα 8 όταν αντιγράφετε. Στο δεκαεξαδικό τα γράμματα αξίζουν το ίδιο σε κεφαλαία και πεζά, αλλά δεν είναι το ίδιο με ένα ψηφίο.
- Να αφήσετε το πρόθεμα 0x ή το σύμβολο # κατά τη μετατροπή: είναι μόνο ενδείξεις ότι ο αριθμός είναι δεκαεξαδικός και πρέπει να αφαιρεθούν πριν από την επικόλληση.
- Να νομίζετε ότι το 10 στο δυαδικό είναι δέκα: είναι δύο. Το ίδιο «10» αξίζει 2, 10 ή 16 ανάλογα με τη βάση.
Λυμένες ασκήσεις για εξάσκηση
Προσπαθήστε να λύσετε κάθε μία πριν δείτε την απάντηση και ελέγξτε μετά με το εργαλείο.
- Μετατρέψτε το 10110110 σε δεκαδικό και σε δεκαεξαδικό. Απάντηση: 128 + 32 + 16 + 4 + 2 = 182· σε ομάδες των τεσσάρων, 1011 0110 = B6.
- Μετατρέψτε το 200 σε δυαδικό και σε δεκαεξαδικό. Απάντηση: 11001000 και C8 (12 × 16 + 8 = 200).
- Μετατρέψτε το 7F σε δυαδικό. Απάντηση: 7 = 0111 και F = 1111, άρα 01111111, που σε δεκαδικό είναι 127.
- Γράψτε το «OK» σε δυαδικό. Απάντηση: το O είναι 79 και το K είναι 75, δηλαδή 01001111 01001011.
Συχνές ερωτήσεις
Πώς περνάω το 1101 από δυαδικό σε δεκαδικό;
Προσθέτετε τις τιμές των θέσεων όπου υπάρχει 1: 8 + 4 + 1 = 13. Το δεύτερο ψηφίο από δεξιά είναι 0, άρα το 2 δεν προστίθεται.
Πόσο είναι το 255 σε δυαδικό και σε δεκαεξαδικό;
Το 255 είναι 11111111 σε δυαδικό και FF σε δεκαεξαδικό. Είναι η μεγαλύτερη τιμή που χωράει σε ένα byte των 8 bit.
Γιατί το δεκαεξαδικό χρησιμοποιεί γράμματα;
Επειδή χρειάζεται δεκαέξι διαφορετικά σύμβολα και το δεκαδικό σύστημα προσφέρει μόνο δέκα (0 έως 9). Γι' αυτό το A αξίζει 10, το B 11, το C 12, το D 13, το E 14 και το F 15.
Πόσοι διαφορετικοί αριθμοί μπορούν να γραφτούν με 8 bit;
256, από το 0 έως το 255. Γενικά, με n bit μπορούν να παρασταθούν 2 στη δύναμη n τιμές.
Μετατρέπει το εργαλείο αρνητικούς αριθμούς ή αριθμούς με δεκαδικά;
Όχι, μόνο μη αρνητικούς ακέραιους. Για κείμενο χρησιμοποιεί UTF-8, άρα τα γράμματα με τόνο και τα emoji δίνουν πάνω από 8 bit.