Skip to main content
🔬 Advanced

Δυαδική Υπολογιστής

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

Το δυαδικό σύστημα αριθμών: Πώς μετράνε οι υπολογιστές

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

Κάθε θέση σε έναν δυαδικό αριθμό αντιπροσωπεύει μια δύναμη 2, αυξάνοντας από δεξιά προς αριστερά:

Θέση2⁷2⁶2⁵2⁴2⁰
Αξία1286432168421

Μετατροπή από δυαδικό σε δεκαδικό:Πολλαπλασιάστε κάθε bit με την τιμή της θέσης του και αθροίστε όλα τα αποτελέσματα.

Παράδειγμα:101101012= 1x128 + 0x64 + 1x32 + 1x16 + 0x8 + 1x4 + 0x2 + 1x1 = 128 + 32 + 16 + 4 + 1 =Αριθ.

Μετατροπή από δεκαδική σε δυαδική:Διαιρέστε επανειλημμένα με το 2, καταγράφοντας το υπόλοιπο σε κάθε βήμα, και στη συνέχεια διαβάστε τα υπόλοιπα από κάτω προς τα πάνω.

Παράδειγμα: Μετατροπή του 181 σε δυαδικό:

Διαβάστε τα υπόλοιπα από κάτω προς τα πάνω: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 bits15 (εξαδέλφια: F)Ένα δεκαέξι ψηφίο
Βάιτ8 bitsΑριθ. 255Ενιαίο χαρακτήρα (ASCII), χρωματικό κανάλι
Μία λέξη .16 bits65.535Παλαιότερα 16-bit συστήματα, βασικό Unicode
Διπλή λέξη (DWORD)32 bits4.294.967.29532-bit ακέραιοι αριθμοί, διευθύνσεις IPv4
Δύο λέξεις (QWORD)64 bit18.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 είναι 11010 & 1100 = 1000
OR|1 αν κάθε bit είναι 11010... 1100 = 1110
XOR^1 εάν τα bits είναι διαφορετικά1010 ^ 1100 = 0110
ΟΧΙ~Γυρίστε όλα τα κομμάτια.~1010 = 0101
Αριστερή στροφή<<Μπιτ μετατόπισης αριστερά (x2 κάθε μετατόπισης)1011 << 1 = 10110 (x2)
Στροφή δεξιάς>>Μπιτ μετατόπισης δεξιά (÷2 κάθε μετατόπιση)1011 >> 1 = 0101 (÷2)

Πρακτική χρήση:

Σύγκριση αριθμητικών συστημάτων: Δυαδική, Οκταδική, Δεκαδική, Εξαδεκαδική

Η επιστήμη των υπολογιστών χρησιμοποιεί τέσσερα αριθμητικά συστήματα, το καθένα κατάλληλο για διαφορετικά πλαίσια:

ΣύστημαΒάσηΑριθμοίΣυνηθισμένη χρήση
Δυαδική (βάση-2)20, 1Λειτουργίες επεξεργαστή, αποθήκευση, λογική
Οκτάλ (βάση-8)80 - 7Δικαιώματα αρχείου Unix, παλαιότερα συστήματα
Δεκαδική (βάση 10)100 - 9Αριθμοί αναγνώσιμοι από τον άνθρωπο
Εξαδεκαδική (βάση 16)160 - 9, Α - Φδιευθύνσεις μνήμης, κωδικοί χρώματος, κωδικός μηχανής

Γρήγορη μετατροπή: δυαδική <-> εξάδα(4 δυαδικά ψηφία = 1 δεκαδικό ψηφίο):

ΔυαδικήΧέξ .ΔεκαδικήΔυαδικήΧέξ .Δεκαδική
0000 Ύψος00Χιλιάδες88
0001111001 και99
Τεχνικά221010 χιλιόγραμμαA10
0011 Ύπαρξη331011 καιB11
0100 Ανεξάρτητα441100 χλμ.C12
0101 και551101 καιD13
0110 Επικοινωνία661110 καιE14
0111771111 καιF15

Αυτή η ομαδοποίηση 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 και της μάσκας υποδικτύου δίνει τη διεύθυνση δικτύου:

ΣυστατικόΔεκαδικήΔυαδική
Διεύθυνση IP192.168.1.10011000000.10101000.00000001.01100100
Μάσκα υποδικτύου255.255.255.011111111111111111111111111
Δίκτυο (AND)192.168.1.011000000.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:

Μεγέθη κλειδιών στη σύγχρονη κρυπτογράφηση:Το 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 απευθείας) και παλιά συστήματα μεγάλων υπολογιστών. Είναι λιγότερο αποδοτικό στο χώρο από το καθαρό δυαδικό, αλλά εξαλείφει τα σφάλματα μετατροπής δεκαδικό σε δυαδικό σε κρίσιμες εφαρμογές.

},{"@type":"Ερώτηση","όνομα":"Ποιος είναι ο μεγαλύτερος αριθμός που μπορεί να περιέχει ένα byte?","acceptedAnswer":{"@type":"Answer","text":"Ένα byte (8 bits) μπορεί να αντιπροσωπεύει 28 = 256 διαφορετικές τιμές. Για μη υπογεγραμμένα ακέραια: 0 έως 255. Για υπογεγραμμένα ακέραια (συμπλήρωμα δύο): -128 έως 127. Η μέγιστη μη υπογεγραμμένη τιμή byte στο δυαδικό είναι 111111112 = 255; σε hex είναι FF. "}},{"@type":"Ερώτηση","όνομα":"Πώς μπορώ να μετατρέψω έναν αρνητικό αριθμό σε δυαδικό;"",acceptedAnswer":{"@type":"Answer","text":"Χρησιμοποιήστε το συμπλήρωμα δύο: (1) Μετατρέψτε την εκδοχή σε δυαδικό, (2) Αναστρέψτε όλα τα bits (0-> 1,> 1-0), (3) Προσθέστε -13 σε 8-bit = + 00132,001 flip = 11112,00111,00112. Αυτός είναι ο τρόπος με τον οποίο όλοι οι σύγχρονοι υπολογιστές αποθηκεύουν αρνητικούς ακέραιους αριθμούς. "}},{"@type":"Ερώτηση","όνομα":"Ποια είναι η διαφορά μεταξύ δυαδικού και εξαδυτικού?","acceptedAnswer":{"@type":"Answer","text":"Και τα δύο είναι τοποθεσιακά συστήματα αριθμών που χρησιμοποιούνται στην πληροφορική. Το hex χρησιμοποιείται για διευθύνσεις μνήμης, κωδικούς χρώματος (#RRGGBB) και κώδικα μηχανής επειδή είναι πιο συμπαγές και ευανάγνωστο από το ακατέργαστο δυαδικό. Συνηθισμένες χρήσεις: σημαίες bit και δικαιώματα (Unix chmod), έλεγχος ζευγαρών/παράξενων (n & 1), γρήγορος πολλαπλασιασμός/διαίρεση με δυνάμεις του 2 (μετατόπιση bit), αλγόριθμοι κρυπτογράφησης, λειτουργίες hash, ανίχνευση σφαλμάτων CRC, μάσκες υποδικτύου δικτύου και ανάπτυξη παιχνιδιών (αποθήκευση συμπαγής κατάστασης σε ένα ενιαίο ακέραιο). "}},{"@type":"Ερώτηση","name":"Τι είναι το δυαδικό πλωτό σημείο και γιατί το 0.1 + 0.2 ≠ 0.3 στο προγραμματισμό;",acceptedAnswer":{"type@":"Answer","text":"Οι περισσότεροι σύγχρονοι υπολογιστές χρησιμοποιούν IEEE 754 δυαδικό πλωτό σημείο, το οποίο αντιπροσωπεύει δεκαδικά κλάσματα σε δυαδικό. Ακριβώς όπως το 1/3 = 0.33... δεν μπορεί να αντιπροσωπευτείνεται ακριβώς σε δεκαδικό, το 1/10 δεν μπορεί να αντιπροσωπευτείνεται ακριβώς σε δυαδικό (είναι ένα ατελώς επαναλαμβανόμενο δυαδικό κλάσμα). Αυτό προκαλεί μικροσκοπικά σφάλματα στρογγυλοποίησης: στις περισσότερες γλώσσες, 0.1 + 0.2 = 0.30000000000000004. Χρησιμοποιήστε αριθμητική ακέραιων αριθμών (εργασία σε σεντς, όχι δολάρια) ή δεκαδικές βιβλιοθήκες για ακριβείς οικονομικούς υπολογισμούς. Ένας δίσκος 1 TB δείχνει ~ 931 GiB στο Windows επειδή 1.000.000.000.000 ÷ 1.073.741.824 ~ 931."}},{"@type":"Ερώτηση","όνομα":"Τι είναι δεκαδική με δυαδικό κώδικα (BCD);","αποδεκτήΑπόκριση":{"@type":"Απόκριση","κείμενο":"Η BCD κωδικοποιεί κάθε δεκαδικό ψηφίο ως μια δυαδική ομάδα 4-bit: 0=0000, 1=0001, ..., 9=1001. Έτσι, το δεκαδικό 93 στο BCD είναι 1001 0011. Το BCD χρησιμοποιείται σε χρηματοπιστωτικά συστήματα (αποφεύγει σφάλματα στρογγυλοποίησης πλεύσης), ψηφιακά ρολόγια και οθόνες (7-segment οθόνες αποκωδικοποιούν απευθείας το BCD) και παλιά συστήματα mainframe. Είναι λιγότερο αποδοτικό στον χώρο από το καθαρό δυαδικό αλλά εξαλείπει τα λάθη μετατροπής από δεκαδικό σε δυαδικό σε κρίσιμες εφαρμογές. "}}}]