Μετατροπέας Δυαδικού σε Δεκαδικό
Μετατρέψτε δυαδικούς αριθμούς σε δεκαδικούς και δεκαδικούς σε δυαδικούς άμεσα. Υποστηρίζει έως 64-bit αριθμούς. Δωρεάν μετατροπέας με άμεσα αποτελέσματα.
Πώς λειτουργεί η Μετατροπή από Δύναμη 2 σε Δεκαδική
Η Δύναμη 2 (base-2) χρησιμοποιεί μόνο τα ψηφία 0 και 1. Κάθε θέση αντιπροσωπεύει μια δύναμη του 2, που διπλαίνεται από αριστερά προς τα δεξιά. Για να μετατρέψετε τη δύναμη 2 σε δεκαδική, πολλαπλασιαστείτε κάθε δυαδικό ψηφίο με την αξία θέσης του και προσθέστε τα αποτελέσματα.
Παράδειγμα: Μετατροπή 1011₂ σε δεκαδική
- Θέση 3 (αριστερά): 1 × 2³ = 1 × 8 = 8
- Θέση 2: 0 × 2² = 0 × 4 = 0
- Θέση 1: 1 × 2¹ = 1 × 2 = 2
- Θέση 0 (δεξιά): 1 × 2⁰ = 1 × 1 = 1
- Σύνολο: 8 + 0 + 2 + 1 = 11
Για τη μετατροπή από δεκαδική σε δύναμη 2, επαναλάβετε τη διαίρεση με 2 και καταγράψτε τα υπόλοιπα από κάτω προς τα πάνω. 11 ÷ 2 = 5 R1, 5 ÷ 2 = 2 R1, 2 ÷ 2 = 1 R0, 1 ÷ 2 = 0 R1 → ανάγνωση των υπόλοιπων από πάνω: 1011.
Αυτό το σύστημα αναφοράς θέσεων λειτουργεί το ίδιο τρόπο με τη δεκαδική — απλά με διαφορετική βάση. Στη δεκαδική (base-10), το αριθμό 347 σημαίνει 3 × 10² + 4 × 10¹ + 7 × 10⁰ = 300 + 40 + 7. Η δύναμη 2 χρησιμοποιεί το ίδιο原ίτη με τις δυνάμεις του 10.
Δυαδική Αξία Θέσεων Αναφοράς
Η 8-ψηφιαία byte είναι η βασική μονάδα αποθήκευσης του υπολογιστή. Εδώ είναι η πλήρης πίνακας αξίας θέσης για 8-ψηφιαία αριθμητικά (0–255):
| Θέση βιτ | Δύναμη του 2 | Δεκαδική αξία |
|---|---|---|
| Bit 7 (MSB) | 2⁷ | 128 |
| Bit 6 | 2⁶ | 64 |
| Bit 5 | 2⁵ | 32 |
| Bit 4 | 2⁴ | 16 |
| Bit 3 | 2³ | 8 |
| Bit 2 | 2² | 4 |
| Bit 1 | 2¹ | 2 |
| Bit 0 (LSB) | 2⁰ | 1 |
Μια byte μπορεί να αντιπροσωπεύει οποιαδήποτε τιμή από 0 (00000000₂) έως 255 (11111111₂). Δύο byte (16 βιτ) καλύπτουν 0–65.535. Τέσσερα byte (32 βιτ) καλύπτουν 0–4.294.967.295.
Εκτεταμένη Πίνακας Δυνάμεων του 2
Για προγραμματιστές και επιστήμονες υπολογιστών, η γνώση των δυνάμεων του 2 μέχρι το 2⁶⁴ είναι απαραίτητη για την κατανόηση της διευθύνσεων μνήμης, των τύπων δεδομένων και των ορίων συστήματος:
| Δύναμη | Δεκαδική Αξία | Σημασία |
|---|---|---|
| 2⁰ | 1 | Μικρότερη μονάδα (1 βιτ) |
| 2⁸ | 256 | 1 byte εύρος (0–255) |
| 2¹⁰ | 1.024 | 1 KiB (kibibyte) |
| 2¹⁶ | 65.536 | 16-bit εύρος; Ορίου TCP |
| 2²⁰ | 1.048.576 | 1 MiB (mebibyte) |
| 2²⁴ | 16.777.216 | 24-bit χρώμα (16,7M χρώματα) |
| 2³⁰ | 1.073.741.824 | 1 GiB (gibibyte) |
| 2³² | 4.294.967.296 | 32-bit χώρος διευθύνσεων; IPv4 μέγιστος |
| 2⁴⁰ | 1.099.511.627.776 | 1 TiB (tebibyte) |
| 2⁶⁴ | 18.446.744.073.709.551.616 | 64-bit χώρος διευθύνσεων; Σύγχρονοι CPU |
Σημειώστε τη διαφορά μεταξύ των δυαδικών προθέσεων (KiB, MiB, GiB — δυνάμεις του 2) και των προθέσεων SI (KB, MB, GB — δυνάμεις του 10). 1 GB = 1.000.000.000 byte; 1 GiB = 1.073.741.824 byte. Αυτή η ~7% διαφορά εξηγεί γιατί ένα "500 GB" σκληρό δίσκο δείχνει ως ~465 GiB στο OS (που χρησιμοποιεί συνήθως δυαδικά μονάδες εσωτερικά).
Συνήθεις Δυαδικές Τιμές σε Υπολογιστές
Αυτές οι δυαδικές τιμές εμφανίζονται συχνά σε προγραμματισμό, δικτύωση και διαχείριση συστήματος:
| Δυαδική | Δεκαδική | Εξαδική | Χρήση |
|---|---|---|---|
| 00000000 | 0 | 0x00 | NULL byte, μαύρο χρώμα κανάλι |
| 00001010 | 10 | 0x0A | Λεπτό ρύθμιση (LF) χαρακτήρας — Unix newline |
| 00001101 | 13 | 0x0D | Κάροτ-περίπτωση (CR) — Windows newline μέρος |
| 00100000 | 32 | 0x20 | Χαμηλός χαρακτήρας (ASCII) |
| 01000001 | 65 | 0x41 | ASCII 'A' |
| 01100001 | 97 | 0x61 | ASCII 'a' (διαφέρει από 'A' με βιτ 5) |
| 01111111 | 127 | 0x7F | Λοπαλό IP (τελευταίο οκταδικό); Χαρακτήρας DEL |
| 10000000 | 128 | 0x80 | Αρχή εκτεταμένης ASCII / σημαία βιτ |
| 11000000 | 192 | 0xC0 | Κλάση C δίκτυο προέλευσης (192.x.x.x) |
| 11111111 | 255 | 0xFF | Διαμεταδότης; Μέγιστη byte; Λευκό σε RGB |
Δύναμη 2, Εξαδική και Οκταδική Συγκριση
Οι προγραμματιστές χρησιμοποιούν διαφορετικές βάσεις αριθμών ανάλογα με το πλαίσιο. Εδώ είναι πώς οι ίδιες τιμές εμφανίζονται σε κάθε σύστημα:
| Δεκαδική | Δυαδική | Εξαδική | Οκταδική | Χρήση |
|---|---|---|---|---|
| 0 | 0000 | 0x0 | 0o0 | Ζερό / NULL |
| 7 | 0111 | 0x7 | 0o7 | Unix άδεια (rwx) |
| 10 | 1010 | 0xA | 0o12 | — |
| 15 | 1111 | 0xF | 0o17 | Μέγιστη 4-βιτ (νίμπλ) |
| 16 | 10000 | 0x10 | 0o20 | — |
| 127 | 1111111 | 0x7F | 0o177 | Μέγιστη υπογεγραμμένη 8-βιτ |
| 255 | 11111111 | 0xFF | 0o377 | Μέγιστη αόριστη 8-βιτ |
| 511 | 111111111 | 0x1FF | 0o777 | Unix άδεια rwxrwxrwx |
| 1023 | 1111111111 | 0x3FF | 0o1777 | Μέγιστη 10-βιτ (ADC) |
Η εξαδική είναι η πιο κοινή συντομογραφία για τη δυαδική επειδή κάθε εξαδικό ψηφίο αντιστοιχεί ακριβώς σε 4 δυαδικά βιτ — κάνε τη μετατροπή εύκολη. Η οκταδική αντιστοιχεί σε 3 βιτ ανά ψηφίο και χρησιμοποιείται κυρίως για τις άδειες Unix (π.χ., chmod 755 = 111 101 101 σε δυαδική = rwxr-xr-x).
Συμβολοσειρές Δύο Αριθμών (Δύο Κανόνες)
Οι υπολογιστές αντιπροσωπεύουν αρνητικά αριθμητικά χρησιμοποιώντας δύο κανόνες — τον καθορισμό που ορίζεται από την IEEE και χρησιμοποιείται από σχεδόν όλους τους σύγχρονους επεξεργαστές. Σε ένα σύστημα 8-bit δύο κανόνων:
| Δεκαδικό | Αναλογικό | Σημαινόμενο (Δύο Κανόνες) |
|---|---|---|
| 00000000 | 0 | 0 |
| 00000001 | 1 | +1 |
| 01111111 | 127 | +127 (περισσότερο θετικό) |
| 10000000 | 128 | −128 (λιγότερο αρνητικό) |
| 10000001 | 129 | −127 |
| 11111110 | 254 | −2 |
| 11111111 | 255 | −1 |
Για να αρνηθεί ένας αριθμός σε δύο κανόνες: ανταλλάξτε όλα τα βήματα και προσθέστε 1. Για παράδειγμα, +5 = 00000101 → ανταλλάξτε → 11111010 → προσθέστε 1 → 11111011 = −5.
Οι εύρους για κοινές τύπους ακέραιων:
| Τύπος | Βήματα | Εύρος Αναλογικό | Εύρος Σημαινόμενο |
|---|---|---|---|
| byte / uint8 | 8 | 0 έως 255 | −128 έως +127 |
| short / int16 | 16 | 0 έως 65.535 | −32.768 έως +32.767 |
| int / int32 | 32 | 0 έως 4.294.967.295 | −2.147.483.648 έως +2.147.483.647 |
| long / int64 | 64 | 0 έως 18.4 × 10¹⁸ | −9.2 × 10¹⁸ έως +9.2 × 10¹⁸ |
Δεκαδικό σε Καθημερινή Τεχνολογία
Το δεκαδικό είναι η βάση όλων των σύγχρονων υπολογισμών, επειδή οι τρανζίστορ έχουν δύο σταθερά καταστάσεις (ενεργό/μη ενεργό, 1/0). Κύριες εφαρμογές:
- Μέγεθος αρχείων: 1 κιλόβυτ = 2¹⁰ = 1.024 βύττα; 1 μεگابύττα = 2²⁰ = 1.048.576 βύττα; 1 γιγαμπύττα = 2³⁰ βύττα
- Χρώματα: Τα χρώματα RGB είναι τρεις 8-bit τιμές. #FF5733 σε εξαδικό = (255, 87, 51) σε δεκαδικό = (11111111, 01010111, 00110011) σε δεκαδικό
- ASCII κωδικοποίηση: Το γράμμα 'A' = δεκαδικό 65 = δεκαδικό 01000001; 'a' = 97 = 01100001
- Unicode: Οι περισσότεροι κείμενο χαρακτήρες ταιριάζουν σε 16-bit δεκαδικό (0–65.535 εύρος)
- Διευθύνσεις IP: Οι διευθύνσεις IPv4 είναι τέσσερα 8-bit δεκαδικά ομάδες: 192.168.1.1 = 11000000.10101000.00000001.00000001
Η κατανόηση του δεκαδικού βοηθά άμεσα στην προγραμματισμό (βηματικά λειτουργίες, σημαίες), δικτύωση (IP/συνδεδεμένες υπολογιστές υπολογισμούς) και εργασία με χαμηλού επιπέδου hardware.
Δεκαδική Αριθμητική: Πρόσθεση και Αφαίρεση
Η δεκαδική αрифματική ακολουθεί τα ίδια κανόνια με το δεκαδικό, αλλά με μόνο δύο ψηφία. Η πίνακας πρόσθεσης είναι:
| A | B | Σύνολο | Μεταφορά |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Παράδειγμα: 1011 + 0110
Δουλεύοντας από δεξιά προς αριστερά: 1+0=1, 1+1=10 (γράψετε 0 μεταφορά 1), 0+1+1=10 (γράψετε 0 μεταφορά 1), 1+0+1=10 (γράψετε 0 μεταφορά 1). Αποτέλεσμα: 10001 (δεκαδικό: 11+6=17 ✓)
Η αφαίρεση σε hardware εκτελείται συνήθως προσθέτοντας το αντίστροφο του υπολοίπου. Για να υπολογίσετε A−B, ο επεξεργαστής υπολογίζει A + (−B), όπου −B είναι το αντίστροφο του B σε δύο κανόνες. Αυτό επιτρέπει σε ένα κύκλωμα προσθήκης να χειρίζεται και προσθήκη και αφαίρεση.
Βηματικές Λειτουργίες
Οι γλώσσες προγραμματισμού παρέχουν βηματικές λειτουργίες που επεξεργάζονται τα ατομικά βήματα. Αυτές είναι θεμελιώδεις για χαμηλού επιπέδου προγραμματισμό, ενσωματωμένα συστήματα και επιτάχυνση:
| Λειτουργία | Σύμβολο | Παράδειγμα (8-bit) | Αποτέλεσμα | Χρήση |
|---|---|---|---|---|
| ΚΑΙ | & | 10110101 & 11110000 | 10110000 | Μάσκαρες βημάτων, εξαγωγή πεδίων |
| ΛΟΓΙΚΟΣ | | | 10110101 | 00001111 | 10111111 | Διαμόρφωση βημάτων, συνδυασμός σημαίων |
| ΧΟΡΗΓΗΣΗ | ^ | 10110101 ^ 11111111 | 01001010 | Αλλαγή βημάτων, απλή κρυπτογράφηση |
| ΑΝΤΙΚΑΤΑΣΤΑΣΗ | ~ | ~10110101 | 01001010 | Αντιστροφή βημάτων |
| Αριστερά μετατόπιση | << | 00000101 << 2 | 00010100 | Απλοποίηση με πολλαπλασιασμό |
| Δεξιά μετατόπιση | >> | 00010100 >> 2 | 00000101 | Απλοποίηση με διαίρεση |
Η μετατόπιση βημάτων είναι σημαντικά ταχύτερη από πολλαπλασιασμό/διαίρεση σε πολλές επεξεργαστές. x << 1 είναι ισοδύναμο με x × 2, και x >> 1 είναι ισοδύναμο με x ÷ 2 (αριθμητική διαίρεση). Τα παιχνίδια μηχανών και τα ενσωματωμένα firmware χρησιμοποιούν αυτές τις λειτουργίες εκτενώς για την επιτάχυνση.
Δεκαδικός Κωδικός Δεκαδικού (BCD)
Ο Δεκαδικός Κωδικός Δεκαδικού αντιπροσωπεύει κάθε δεκαδικό ψηφίο με το δικό του 4-bit δεκαδικό μοτίβο. Αντιθέτως από το καθαρά δεκαδικό, ο BCD διατηρεί τη δεκαδική δομή:
| Δεκαδικό | Καθαρά Δεκαδικό | BCD |
|---|---|---|
| 0 | 0000 | 0000 |
| 5 | 0101 | 0101 |
| 9 | 1001 | 1001 |
| 10 | 1010 | 0001 0000 |
| 42 | 101010 | 0100 0010 |
| 99 | 1100011 | 1001 1001 |
| 255 | 11111111 | 0010 0101 0101 |
Ο BCD είναι λιγότεο χώρος-ευοίων από το καθαρά δεκαδικό (10 από τις 16 δυνατές 4-bit συνδυασμούς χρησιμοποιούνται), αλλά ευκολύνει την εμφάνιση δεκαδικών — κάθε nibble αντιπροσωπεύει απευθείας ένα εμφανιζόμενο ψηφίο. Ο BCD χρησιμοποιείται σε ψηφιακούς ωρολογούς, υπολογιστές, χρηματοοικονομικά συστήματα (όπου απαιτείται ακριβής δεκαδική αντιπροσώπευση) και παλαιότερα κύρια δίκτυα (COBOL, IBM EBCDIC).