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

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

Πώς γράφεται ένας αριθμός με δυνάμεις του 2 ή του 16, και πώς πάμε από το ένα σύστημα στο άλλο.

40 λεπτά

Θα μάθεις να

  1. Να εξηγείς ότι σε κάθε θεσιακό σύστημα η αξία ενός ψηφίου εξαρτάται από τη θέση του και από τη βάση.
  2. Να μετατρέπεις αριθμούς από το δυαδικό στο δεκαδικό και αντίστροφα, με διαδοχικές διαιρέσεις με το 2.
  3. Να μετατρέπεις αριθμούς από και προς το δεκαεξαδικό σύστημα, και από δυαδικό σε δεκαεξαδικό με ομάδες των τεσσάρων bit.
  4. Να διαβάζεις έναν χρωματικό κωδικό ιστοσελίδας όπως το #FF8000.

Το ίδιο πλήθος, άλλη γραφή

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

Στο δεκαδικό σύστημα έχουμε δέκα ψηφία, 0 έως 9, και κάθε θέση αξίζει δέκα φορές όσο η θέση στα δεξιά της:

365=3⋅100+6⋅10+5⋅1365 = 3 \cdot 100 + 6 \cdot 10 + 5 \cdot 1

Το 33 δεν αξίζει τρία, αξίζει τριακόσια, επειδή κάθεται στη θέση των εκατοντάδων. Ένα σύστημα όπου η αξία του ψηφίου εξαρτάται από τη θέση του λέγεται θεσιακό, και ο αριθμός που πολλαπλασιάζει κάθε θέση (1010 εδώ) λέγεται βάση.

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

Το δυαδικό σύστημα: βάση 2

Στο δυαδικό σύστημα υπάρχουν μόνο δύο ψηφία, 0 και 1, και κάθε θέση αξίζει διπλάσια από τη θέση στα δεξιά της:

Θέση8η7η6η5η4η3η2η1η
Αξία272^7262^6252^5242^4232^3222^2212^1202^0
Δηλαδή1286432168421

Για να βρεις πόσο αξίζει ένας δυαδικός αριθμός, προσθέτεις τις αξίες των θέσεων που έχουν 1:

10112=8+0+2+1=111011_2 = 8 + 0 + 2 + 1 = 11

Το μικρό 22 κάτω δεξιά λέει σε ποια βάση είναι γραμμένος ο αριθμός. Χωρίς αυτό, το «1011» θα διαβαζόταν «χίλια έντεκα».

Οκτώ bit, ένα byte

Άναψε τα κουτάκια ώστε το άθροισμα να γίνει 200. Ξεκίνα από το μεγαλύτερο κουτάκι που χωράει και προχώρα προς τα δεξιά.

Φτιάξε το 200

Δυαδικός: 00000000

Άθροισμα: 0

Δεκαδικός: 0

Με 88 bit ο μεγαλύτερος αριθμός είναι το 111111112=25511111111_2 = 255, όταν όλα τα κουτάκια είναι αναμμένα. Μαζί με το 00 κάνουν τις 256256 τιμές ενός byte.

Από δεκαδικό σε δυαδικό

Υπάρχουν δύο τρόποι.

1. Αφαιρείς τις μεγαλύτερες δυνάμεις του 2. Αυτό έκανες στα κουτάκια: για το 200200, το 128128 χωράει (μένουν 7272), το 6464 χωράει (μένουν 88), το 3232 και το 1616 δεν χωράνε, το 88 χωράει (μένει 00). Όπου χώρεσε γράφεις 1, αλλού 0.

2. Διαιρείς διαδοχικά με το 2. Διαιρείς τον αριθμό με το 22, κρατάς το υπόλοιπο (0 ή 1), και συνεχίζεις με το πηλίκο, ώσπου το πηλίκο να γίνει 00. Ο δυαδικός αριθμός είναι τα υπόλοιπα από κάτω προς τα πάνω.

Το 44 σε δυαδικό, με διαιρέσεις

Πριν δεις κάθε γραμμή, βρες μόνος σου το πηλίκο και το υπόλοιπο.

ΒήμαΔιαίρεσηΠηλίκοΥπόλοιπο
Ζωντανή ενημέρωση

Το δεκαεξαδικό σύστημα: βάση 16

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

Χρειάζεται δεκαέξι ψηφία. Τα δέκα πρώτα είναι τα γνωστά, και για τα υπόλοιπα δανειζόμαστε τα λατινικά γράμματα A έως F:

Δεκαεξαδικό0–9ABCDEF
Δεκαδικό0–9101112131415

Κάθε θέση αξίζει δεκαέξι φορές όσο η θέση στα δεξιά της: 11, 1616, 256256, …

2C16=2⋅16+12⋅1=442C_{16} = 2 \cdot 16 + 12 \cdot 1 = 44

Από δεκαδικό σε δεκαεξαδικό πηγαίνεις όπως και στο δυαδικό, με διαδοχικές διαιρέσεις, αλλά με το 1616. Για το 200200: 200÷16=12200 \div 16 = 12 με υπόλοιπο 88, και 12÷16=012 \div 16 = 0 με υπόλοιπο 1212. Από κάτω προς τα πάνω: 1212 και 88, δηλαδή C816C8_{16}.

Η συντόμευση: τέσσερα bit, ένα ψηφίο

Με 44 bit γράφεις από 00000000 ως 11111111, δηλαδή 1616 τιμές, όσα ακριβώς είναι τα ψηφία του δεκαεξαδικού. Άρα κάθε ομάδα τεσσάρων bit γίνεται ένα δεκαεξαδικό ψηφίο, χωρίς καμία διαίρεση.

Χωρίζεις τον δυαδικό αριθμό σε τετράδες από τα δεξιά και μεταφράζεις την καθεμιά:

Δυαδικός11001000
Αξία τετράδας8 + 4 = 128
Δεκαεξαδικό ψηφίοC8

Έτσι 110010002=C816=20011001000_2 = C8_{16} = 200. Ένα byte γράφεται πάντα με δύο δεκαεξαδικά ψηφία, από 0000 ως FFFF. Αν η αριστερή τετράδα δεν είναι γεμάτη, της βάζεις μηδενικά μπροστά: 1011002101100_2 γίνεται 0010 11000010\ 1100, δηλαδή 2C162C_{16}.

Πού θα συναντήσεις το δεκαεξαδικό

Στο μάθημα για τις ψηφιακές εικόνες είδαμε ότι ένα χρώμα γράφεται με τρεις εντάσεις, κόκκινο, πράσινο και μπλε, από 00 ως 255255 η καθεμιά. Κάθε ένταση είναι ένα byte, άρα δύο δεκαεξαδικά ψηφία. Έτσι γράφονται τα χρώματα στις ιστοσελίδες:

#FF8000
 ││││└┴─ μπλε:     00 = 0
 ││└┴─── πράσινο:  80 = 128
 └┴───── κόκκινο:  FF = 255

Πολύ κόκκινο, μισό πράσινο, καθόλου μπλε: πορτοκαλί. Το #000000 είναι μαύρο και το #FFFFFF λευκό.

Ας το κάνουμε μαζί

Παράδειγμα 1

Ποιος δεκαδικός αριθμός είναι ο 10110110 στο δυαδικό;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Παράδειγμα 2

Γράψε τον αριθμό 157 στο δυαδικό και μετά στο δεκαεξαδικό.

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Παράδειγμα 3

Μια ιστοσελίδα έχει φόντο στο χρώμα #1E90FF. Πόση είναι η ένταση κάθε χρώματος, από 0 έως 255;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Ασκήσεις

Πρώτα ερωτήσεις με επιλογές: διαλέγεις, πατάς «Έλεγξε» και μαθαίνεις αμέσως αν το βρήκες και γιατί. Στο τέλος, λίγες ασκήσεις χωρίς επιλογές — εκεί κρύβεται μόνο η απάντηση.

Πολλαπλή επιλογήΆσκηση 1 από 12
Στο δυαδικό σύστημα, πόσο αξίζει η 5η θέση από τα δεξιά;

Τα κατάφερες;

  • Να εξηγείς ότι σε κάθε θεσιακό σύστημα η αξία ενός ψηφίου εξαρτάται από τη θέση του και από τη βάση.
  • Να μετατρέπεις αριθμούς από το δυαδικό στο δεκαδικό και αντίστροφα, με διαδοχικές διαιρέσεις με το 2.
  • Να μετατρέπεις αριθμούς από και προς το δεκαεξαδικό σύστημα, και από δυαδικό σε δεκαεξαδικό με ομάδες των τεσσάρων bit.
  • Να διαβάζεις έναν χρωματικό κωδικό ιστοσελίδας όπως το #FF8000.

Λύσε τις ασκήσεις πιο πάνω και θα δεις εδώ πού στέκεσαι.