Δυαδική Υπολογιστής
Κάντε δυαδική πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση. Μετατρέψτε μεταξύ δυαδικών και δεκαδικών.
Το δυαδικό σύστημα αριθμών: Πώς μετράνε οι υπολογιστές
Κάθε υπολογιστής, smartphone και ψηφιακή συσκευή αποθηκεύει και επεξεργάζεται εσωτερικά όλες τις πληροφορίες σε δυαδικό σύστημα, επειδή τα ηλεκτρικά κυκλώματα μπορούν να αντιπροσωπεύουν αξιόπιστα δύο διαφορετικές καταστάσεις: υψηλή τάση (1) και χαμηλή τάση (0).
Κάθε θέση σε έναν δυαδικό αριθμό αντιπροσωπεύει μια δύναμη 2, αυξάνοντας από δεξιά προς αριστερά:
| Θέση | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
|---|---|---|---|---|---|---|---|---|
| Αξία | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Μετατροπή από δυαδικό σε δεκαδικό:Πολλαπλασιάστε κάθε bit με την τιμή της θέσης του και αθροίστε όλα τα αποτελέσματα.
Παράδειγμα:101101012= 1x128 + 0x64 + 1x32 + 1x16 + 0x8 + 1x4 + 0x2 + 1x1 = 128 + 32 + 16 + 4 + 1 =Αριθ.
Μετατροπή από δεκαδική σε δυαδική:Διαιρέστε επανειλημμένα με το 2, καταγράφοντας το υπόλοιπο σε κάθε βήμα, και στη συνέχεια διαβάστε τα υπόλοιπα από κάτω προς τα πάνω.
Παράδειγμα: Μετατροπή του 181 σε δυαδικό:
- 181 ÷ 2 = 90 υπόλοιπο1
- 90 ÷ 2 = 45 υπόλοιπο0
- 45 ÷ 2 = 22 υπόλοιπο1
- 22 ÷ 2 = 11 υπόλοιπο0
- 11 ÷ 2 = 5 υπόλοιπο1
- 5 ÷ 2 = 2 υπόλοιπο1
- 2 ÷ 2 = 1 υπόλοιπο0
- 1 ÷ 2 = 0 υπόλοιπο1
Διαβάστε τα υπόλοιπα από κάτω προς τα πάνω:101101012 ✓
Δυαδική Αριθμητική: Προσθήκη, Αφαίρεση και Πολλαπλασιασμός
Η δυαδική αριθμητική ακολουθεί τους ίδιους κανόνες με τη δεκαδική, αλλά οι μεταφορές συμβαίνουν στο 2 αντί για το 10.
Δυαδικοί κανόνες πρόσθεσης:0+0=0, 0+1=1, 1+0=1, 1+1=10 (μεταφορά 1), 1+1+1=11 (μεταφορά 1)
Παράδειγμα: 10112 + 11012 (11 + 13 = 24)
1011 + 1101 ------ 11000
Εργασία δεξιά προς τα αριστερά: 1+1=10 (γράψτε 0, μεταφέρετε 1); 1+0+1=10 (γράψτε 0, μεταφέρετε 1); 0+1+1=10 (γράψτε 0, μεταφέρετε 1); 1+1+1=11 (γράψτε 1, μεταφέρετε 1); τελική μεταφορά γράφει 1.
Το συμπλήρωμα των δύο (δυαδική αφαίρεση):Οι υπολογιστές χειρίζονται τους αρνητικούς αριθμούς και την αφαίρεση χρησιμοποιώντας την αναπαράσταση του συμπληρώματος των δύο.
Παράδειγμα: -13 σε συμπλήρωμα δύο 8-bit: +13 = 000011012 -> αναστρέψτε όλα τα bits -> 111100102 -> προσθέστε 1 ->111100112 και
Αυτό επιτρέπει την αφαίρεση να εκτελείται ως πρόσθεση: 20 - 13 = 20 + (-13).
Δυαδικό πολλαπλασιασμόείναι κομψό: κάθε μερικό προϊόν είναι είτε 0 (πολλαπλασιασμός με το 0) είτε ο ίδιος ο αριθμός (πολλαπλασιασμός με το 1), μετατοπισμένος προς τα αριστερά.
1011 x 101 ----- 1011 (1011 x 1) 0000 (1011 x 0, μετατοπισμένο) 1011 (1011 x 1, μετατοπισμένο δύο φορές) ------- 1101112 = 55
Δυαδικό στην Πληροφορική: Μπιτς, Μπάιτς και Μεγέθη Δεδομένων
Η κατανόηση των δυαδικών μονάδων είναι απαραίτητη για όποιον εργάζεται με υπολογιστές, αποθήκευση ή ταχύτητες δικτύου:
| Μονάδα | Μέγεθος | Μέγιστη τιμή (μη υπογεγραμμένη) | Συνηθισμένη χρήση |
|---|---|---|---|
| Λίγο. | 1 δυαδικό ψηφίο | 1 | Μπουλιανή σημαία, ενιαία δυαδική τιμή |
| Τσιμπήστε . | 4 bits | 15 (εξαδέλφια: F) | Ένα δεκαέξι ψηφίο |
| Βάιτ | 8 bits | Αριθ. 255 | Ενιαίο χαρακτήρα (ASCII), χρωματικό κανάλι |
| Μία λέξη . | 16 bits | 65.535 | Παλαιότερα 16-bit συστήματα, βασικό Unicode |
| Διπλή λέξη (DWORD) | 32 bits | 4.294.967.295 | 32-bit ακέραιοι αριθμοί, διευθύνσεις IPv4 |
| Δύο λέξεις (QWORD) | 64 bit | 18.446.744.073.709.551.615 | Σύγχρονοι ακέραιοι, δείκτες, χρονικές σφραγίδες |
Τιμές χρώματος:Τα χρώματα του διαδικτύου χρησιμοποιούν 24-bit RGB (8 bits ανά κανάλι). #FF5733 = R:255, G:87, B:51. Κάθε κανάλι 8-bit μπορεί να αντιπροσωπεύει 256 αποχρώσεις (0 - 255).16.777.216(περίπου 16,7 εκατ.).
Άδειες αρχείου στο Unix/Linux:Κάθε σύνολο 3 bits αντιπροσωπεύει τα δικαιώματα ανάγνωσης (r=4), γραφής (w=2) και εκτέλεσης (x=1) για τον ιδιοκτήτη, την ομάδα και άλλους.
Λειτουργίες bitwise και οι εφαρμογές τους
Οι πράξεις bitwise χειρίζονται μεμονωμένα bits μέσα σε ακέραιους αριθμούς. Είναι θεμελιώδεις για προγραμματισμό χαμηλού επιπέδου, κρυπτογραφία, προγραμματισμό δικτύου και κώδικα κρίσιμης απόδοσης.
| Λειτουργία | Σύμβολο | Συμπεριφορά | Παράδειγμα |
|---|---|---|---|
| ΚΑΙ | & | 1 αν και τα δύο bits είναι 1 | 1010 & 1100 = 1000 |
| OR | | | 1 αν κάθε bit είναι 1 | 1010... 1100 = 1110 |
| XOR | ^ | 1 εάν τα bits είναι διαφορετικά | 1010 ^ 1100 = 0110 |
| ΟΧΙ | ~ | Γυρίστε όλα τα κομμάτια. | ~1010 = 0101 |
| Αριστερή στροφή | << | Μπιτ μετατόπισης αριστερά (x2 κάθε μετατόπισης) | 1011 << 1 = 10110 (x2) |
| Στροφή δεξιάς | >> | Μπιτ μετατόπισης δεξιά (÷2 κάθε μετατόπιση) | 1011 >> 1 = 0101 (÷2) |
Πρακτική χρήση:
- Μασκάρισμα:Ελέγξτε αν ένα συγκεκριμένο bit έχει οριστεί:
if (flags & 0b0100) { ... }-- ελέγχει αν το bit 2 είναι 1. - Τοποθετώντας λίγο:
flags = flags | 0b0100-- ρυθμίζει το bit 2 σε 1 ανεξάρτητα από την τρέχουσα τιμή. - Για να ξεκαθαρίσω λίγο:
flags = flags & ~0b0100-- εκκαθαρίζει το bit 2 προς 0. - Γρήγορος πολλαπλασιασμός/διαίρεση με δυνάμεις του 2:
n << 3= n × 8;n >> 2Οι μετατοπίσεις bit είναι λειτουργίες σε επίπεδο CPU, σημαντικά ταχύτερες από τον πολλαπλασιασμό. - Έλεγχος ζυγών/παράξενων:
if (n & 1) { /* odd */ }-- το τελευταίο bit οποιουδήποτε περιττού αριθμού είναι πάντα 1.
Σύγκριση αριθμητικών συστημάτων: Δυαδική, Οκταδική, Δεκαδική, Εξαδεκαδική
Η επιστήμη των υπολογιστών χρησιμοποιεί τέσσερα αριθμητικά συστήματα, το καθένα κατάλληλο για διαφορετικά πλαίσια:
| Σύστημα | Βάση | Αριθμοί | Συνηθισμένη χρήση |
|---|---|---|---|
| Δυαδική (βάση-2) | 2 | 0, 1 | Λειτουργίες επεξεργαστή, αποθήκευση, λογική |
| Οκτάλ (βάση-8) | 8 | 0 - 7 | Δικαιώματα αρχείου Unix, παλαιότερα συστήματα |
| Δεκαδική (βάση 10) | 10 | 0 - 9 | Αριθμοί αναγνώσιμοι από τον άνθρωπο |
| Εξαδεκαδική (βάση 16) | 16 | 0 - 9, Α - Φ | διευθύνσεις μνήμης, κωδικοί χρώματος, κωδικός μηχανής |
Γρήγορη μετατροπή: δυαδική <-> εξάδα(4 δυαδικά ψηφία = 1 δεκαδικό ψηφίο):
| Δυαδική | Χέξ . | Δεκαδική | Δυαδική | Χέξ . | Δεκαδική |
|---|---|---|---|---|---|
| 0000 Ύψος | 0 | 0 | Χιλιάδες | 8 | 8 |
| 0001 | 1 | 1 | 1001 και | 9 | 9 |
| Τεχνικά | 2 | 2 | 1010 χιλιόγραμμα | A | 10 |
| 0011 Ύπαρξη | 3 | 3 | 1011 και | B | 11 |
| 0100 Ανεξάρτητα | 4 | 4 | 1100 χλμ. | C | 12 |
| 0101 και | 5 | 5 | 1101 και | D | 13 |
| 0110 Επικοινωνία | 6 | 6 | 1110 και | E | 14 |
| 0111 | 7 | 7 | 1111 και | F | 15 |
Αυτή η ομαδοποίηση 4-bit κάνει το hex εξαιρετικά χρήσιμο ως συμπαγής συμβολισμός για δυαδικά δεδομένα: η τιμή 32-bit11001010 00111111 10110101 00001100είναι πολύ πιο εύκολο να γραφτεί ωςCA3FB50C.
Δυαδικό στη δικτύωση: διευθύνσεις IP και μάσκες υποδικτύου
Η κατανόηση του δυαδικού είναι απαραίτητη για τη μηχανική δικτύου επειδή οι διευθύνσεις IPv4 είναι βασικά δυαδικοί αριθμοί 32 bit, και η υποδίκτυα -- η διαδικασία διαίρεσης δικτύων -- βασίζεται εξ ολοκλήρου σε δυαδικές λειτουργίες.
Μια διεύθυνση IPv4 όπως192.168.1.100είναι ο αναγνώσιμος από τον άνθρωπο συμβολισμός για την δυαδική τιμή 32 bit:
11000000.10101000.00000001.01100100
A μάσκα υποδικτύουκαθορίζει ποιο τμήμα της διεύθυνσης προσδιορίζει το δίκτυο και ποιο προσδιορίζει τον οικοδεσπότη.
11111111.11111111.11111111.00000000
Το bitwise AND της διεύθυνσης IP και της μάσκας υποδικτύου δίνει τη διεύθυνση δικτύου:
| Συστατικό | Δεκαδική | Δυαδική |
|---|---|---|
| Διεύθυνση IP | 192.168.1.100 | 11000000.10101000.00000001.01100100 |
| Μάσκα υποδικτύου | 255.255.255.0 | 11111111111111111111111111 |
| Δίκτυο (AND) | 192.168.1.0 | 11000000.10101000.00000001.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 |
Η σημειογραφία CIDR (π.χ. /24) σας λέει πόσα πρωτογενή 1-bits βρίσκονται στη μάσκα υποδικτύου. Μια μάσκα /24 έχει 24 ακολουθούμενες από 8 μηδενικά, επιτρέποντας 28 - 2 = 254 χρήσιμες διευθύνσεις ξενιστών ανά υποδίκτυο. Μια μάσκα /16 επιτρέπει 65.534 ξενιστές. Οι μηχανικοί δικτύου χρησιμοποιούν δυαδικό νοητικό μαθηματικό καθημερινά για να σχεδιάσουν υποδίκτυα, να υπολογίσουν διευθύνσεις μετάδοσης και να αντιμετωπίσουν προβλήματα δρομολόγησης.
Δυαδικό στην κρυπτογραφία και την ασφάλεια
Οι σύγχρονοι αλγόριθμοι κρυπτογράφησης λειτουργούν εξ ολοκλήρου σε δυαδικό επίπεδο, χειραγωγώντας μεμονωμένα bits μέσω συνδυασμών XOR, μετατοπίσεις bit και πράξεων υποκατάστασης.
Κρυπτογράφηση XOR (το θεμέλιο των σύγχρονων κρυπτογράφησης):Το XOR έχει μια μοναδική ιδιότητα - η εφαρμογή του δύο φορές με το ίδιο κλειδί επιστρέφει την αρχική τιμή: A K K = A. Αυτό καθιστά το XOR τη βάση των κρυπτογράφων ροής και των μονόχρονων πινακίδων.
Παράδειγμα: κρυπτογράφηση του byte 01001101 (το γράμμα "M" σε ASCII) με το κλειδί 10110010:
- Καθαρό κείμενο: 01001101
- Κλειδί: 10110010
- XOR (κρυπτογραφημένο): 11111111
- XOR και πάλι με το ίδιο κλειδί (αποκρυπτογράφηση): 01001101 = "M"
Μεγέθη κλειδιών στη σύγχρονη κρυπτογράφηση:Το AES-128 χρησιμοποιεί ένα 128-bit κλειδί, που σημαίνει ότι υπάρχουν 2128 ~ 3.4 x 1038 πιθανά κλειδιά - περισσότερα από τον αριθμό των ατόμων στο παρατηρήσιμο σύμπαν. Το AES-256 χρησιμοποιεί 256-bit κλειδιά με 2256 δυνατότητες. Ακόμα και οι ταχύτεροι υπερυπολογιστές δεν μπορούν να χρησιμοποιήσουν βίαιη δύναμη σε αυτούς τους χώρους κλειδιών. Κάθε επιπλέον bit διπλασιάζει τον χώρο αναζήτησης, γι 'αυτό το μήκος του κλειδιού έχει εκθετική σημασία στην κρυπτογραφία.
Λειτουργίες hash όπως το SHA-256 παράγουν μια δυαδική έξοδο 256 bit (32 bytes) από οποιαδήποτε είσοδο. Ακόμη και μια αλλαγή ενός bit στην είσοδο παράγει ένα εντελώς διαφορετικό hash - μια ιδιότητα που ονομάζεται "φαινόμενο χιονοστιβάδας" που κάνει τα hash χρήσιμα για την επαλήθευση της ακεραιότητας των δεδομένων, την αποθήκευση κωδικών πρόσβασης και την τεχνολογία blockchain.
Δυαδική και κβαντική πληροφορική:Ενώ οι κλασικοί υπολογιστές χρησιμοποιούν δυαδικά bits (0 ή 1), οι κβαντικοί υπολογιστές χρησιμοποιούν qubits που μπορούν να υπάρχουν σε μια υπερθέση και των δύο καταστάσεων ταυτόχρονα.
Συχνές ερωτήσεις
Γιατί οι υπολογιστές χρησιμοποιούν δυαδικό αντί δεκαδικό;
Τα ηλεκτρονικά κυκλώματα είναι πιο αξιόπιστα με μόνο δύο ξεχωριστές καταστάσεις: ενεργοποίηση (υψηλή τάση ~ 1) και απενεργοποίηση (χαμηλή τάση ~ 0). Η αναπαράσταση 10 ξεχωριστών καταστάσεων για δεκαδική θα απαιτούσε πολύ πιο ακριβή έλεγχο τάσης και θα ήταν πολύ πιο ευαίσθητο στον ηλεκτρικό θόρυβο. Η απλότητα του δυαδικού επιτρέπει σε δισεκατομμύρια τρανζίστορ να λειτουργούν αξιόπιστα σε ταχύτητες GHz με δισεκατομμύρια λειτουργίες ανά δευτερόλεπτο.
Ποιος είναι ο μεγαλύτερος αριθμός που μπορεί να περιέχει ένα byte;
Ένα byte (8 bits) μπορεί να αντιπροσωπεύσει 28 = 256 διαφορετικές τιμές. Για μη υπογεγραμμένα ακέραια: 0 έως 255. Για υπογεγραμμένα ακέραια (συμπλήρωμα δύο): -128 έως 127. Η μέγιστη μη υπογεγραμμένη τιμή byte στο δυαδικό είναι 111111112 = 255; στο εξάριθμο είναι FF.
Πώς μπορώ να μετατρέψω έναν αρνητικό αριθμό σε δυαδικό;
Χρησιμοποιήστε το συμπλήρωμα των δύο: (1) Μετατρέψτε την θετική έκδοση σε δυαδική, (2) Αναστρέψτε όλα τα bits (0->1, 1->0), (3) Προσθέστε 1. Παράδειγμα: -13 σε 8-bit: +13 = 000011012, αναστρέψτε bits = 111100102, προσθέστε 1 = 111100112. Έτσι αποθηκεύουν όλοι οι σύγχρονοι υπολογιστές αρνητικά ακέραια.
Ποια είναι η διαφορά ανάμεσα στο δυαδικό και το εξάδεκατο;
Και τα δύο είναι τοποθεσιακά αριθμητικά συστήματα που χρησιμοποιούνται στην πληροφορική. Το δυαδικό (βάση-2) χρησιμοποιεί μόνο το 0 και το 1 - τη μητρική γλώσσα των υπολογιστών. Το εξαδέκατο (βάση-16) χρησιμοποιεί το 0 - 9 και το Α - F ως συμπαγή σημείωση για το δυαδικό - κάθε 4 δυαδικά ψηφία αντιστοιχούν ακριβώς σε 1 δεκαδικά ψηφία. Το δεκαδικό χρησιμοποιείται για διευθύνσεις μνήμης, κωδικούς χρώματος (#RRGGBB) και κώδικα μηχανής επειδή είναι πιο συμπαγές και ευανάγνωστο από το ακατέργαστο δυαδικό.
Τι είναι bitwise λειτουργίες που χρησιμοποιούνται για;
Οι λειτουργίες bitwise (AND, OR, XOR, NOT, shifts) χειρίζονται μεμονωμένα bits μέσα σε ακέραιους αριθμούς.
Τι είναι το δυαδικό πλωτό σημείο και γιατί το 0.1 + 0.2 ≠ 0.3 στον προγραμματισμό;
Οι περισσότεροι σύγχρονοι υπολογιστές χρησιμοποιούν IEEE 754 δυαδικό πλωτό σημείο, το οποίο αντιπροσωπεύει δεκαδικά κλάσματα σε δυαδικό. Ακριβώς όπως το 1/3 = 0,3333... δεν μπορεί να αντιπροσωπευτεί ακριβώς σε δεκαδικό, το 1/10 δεν μπορεί να αντιπροσωπευτεί ακριβώς σε δυαδικό (είναι ένα ατελείωτα επαναλαμβανόμενο δυαδικό κλάσμα). Αυτό προκαλεί μικροσκοπικά σφάλματα στρογγυλοποίησης: στις περισσότερες γλώσσες, 0.1 + 0.2 = 0.30000000000000004. Χρησιμοποιήστε ακέραια αριθμητική (εργασία σε σεντ, όχι δολάρια) ή δεκαδικές βιβλιοθήκες για ακριβείς οικονομικούς υπολογισμούς.
Πώς χρησιμοποιείται το δυαδικό σύστημα στην αποθήκευση δεδομένων και σε μεγέθη αρχείων;
Η αποθήκευση μετριέται σε bytes (8 bits), kilobytes (1,024 bytes), megabytes (1,024 KB), gigabytes (1,024 MB), κλπ. Σημείωση: οι κατασκευαστές σκληρών δίσκων χρησιμοποιούν προθέματα SI (1 KB = 1,000 bytes) ενώ τα λειτουργικά συστήματα χρησιμοποιούν δυαδικά προθέματα (1 KiB = 1,024 bytes), προκαλώντας την προφανή διαφορά "ελλείποντος χώρος" όταν αγοράζετε αποθήκευση.
Τι είναι η δεκαδική με δυαδικό κωδικό (BCD);
Το BCD κωδικοποιεί κάθε δεκαδικό ψηφίο ως μια δυαδική ομάδα 4 bit: 0=0000, 1=0001, ..., 9=1001. Έτσι το δεκαδικό 93 στο BCD είναι 1001 0011. Το BCD χρησιμοποιείται σε χρηματοπιστωτικά συστήματα (αποφεύγει τα σφάλματα στρογγυλοποίησης κυμαινόμενης ακτίνας), ψηφιακά ρολόγια και οθόνες (οθόνες 7 τμημάτων αποκωδικοποιούν το BCD απευθείας) και παλιά συστήματα μεγάλων υπολογιστών. Είναι λιγότερο αποδοτικό στο χώρο από το καθαρό δυαδικό, αλλά εξαλείφει τα σφάλματα μετατροπής δεκαδικό σε δυαδικό σε κρίσιμες εφαρμογές.