Έχετε σχεδόν σίγουρα ακούσει για αρνητικούς αριθμούς. Εάν είχατε ακόμη μια μικρή έκθεση στον κόσμο της επιστήμης των υπολογιστών και του προγραμματισμού υπολογιστών, η έννοια των δυαδικών αριθμών δεν είναι εντελώς ξένη. Αλλά αν δεν έχετε εξερευνήσει προσωπικά τον κόσμο του προγραμματισμού, πιθανώς δεν έχετε δουλέψει ποτέ ουσιαστικά με δυαδικούς αριθμούς.
Επειδή οι υπολογιστές δεν μπορούν να «σκεφτούν» ή «να αποφασίσουν» μόνοι τους, αλλά μπορούν να ακολουθήσουν τις διαταγμένες οδηγίες με ασταθή ακρίβεια, οι μαθηματικοί ήρθαν εδώ και πολύ καιρό με έναν τρόπο ώστε οι υπολογιστές (ή οι άνθρωποι με επαρκή υπομονή) να κάνουν προσθήκη, αφαίρεση και άλλες μαθηματικές πράξεις χρησιμοποιώντας μόνο τα ψηφία 0 και 1.
Υπάρχει όμως τρόπος να συνδυάσετε αυτές τις δύο ιδέες για να παράγετε αρνητικούς αριθμούς; Είναι τόσο απλό όσο το να πείτε σε ένα μηχάνημα να κολλήσει μια μικρή οριζόντια γραμμή μπροστά από έναν υπάρχοντα αριθμό a la pen και χαρτί, ή ο παράγοντας "bits and bytes" κάνει τα πράγματα πιο εμπλεκόμενα;
Τι είναι οι δυαδικοί αριθμοί;
Οι υπολογιστές έχουν τεράστια ποσότητα επεξεργασίας και ακόμη και ένας παλιός clunker μπορεί να εκτελέσει υπολογισμούς με ρυθμό που θα φαινόταν ακατανόητο ακόμη και για τον πιο αριθμητικά προικισμένο άνθρωπο. Αλλά δεν είναι εγκέφαλοι και ο μόνος τρόπος για να τους χειριστούν περίπλοκες πληροφορίες είναι να υποβιβάσει ό, τι είναι δυνατόν σε μία από τις δύο καταστάσεις, π.χ. ON ή OFF.
Στο "computer-ese", ένα μεμονωμένο 0 ή 1 αναφέρεται ως α κομμάτι. Οι ομάδες αυτών περιλαμβάνουν το μυστηριώδης (4 bits), το γνωστό ψηφιόλεξη (8), το λέξη (1) και το μεγάλη λέξη (32).
Οι δεκαδικοί αριθμοί που βλέπετε συνήθως, όπως τα 492 και 35, είναι "base-10", επειδή περιλαμβάνουν 10 προοδευτικά σύμβολα (τα ψηφία 0 έως 9) που "κύλιση" στο επόμενο μέρος προς τα αριστερά - το επόμενο "δύναμη του 10." Οι δυαδικοί αριθμοί, αντ 'αυτού, περιλαμβάνουν μόνο δύο σύμβολα (τα ψηφία 0 και 1) και είναι "βάση-2." Κάθε αριστερή κίνηση από το τέλος του αριθμού έχει μια αυξανόμενη ισχύ δύο: Τα τελικά ψηφία αντιπροσωπεύουν 1, τα επόμενα 2, μετά 4, 8, 16 και σύντομα.
- Ένας δεκαδικός αριθμός είναι οποιοσδήποτε αριθμός στο σύστημα βάσης-10, όχι απαραίτητα ένας αριθμός που περιλαμβάνει ένα δεκαδικό σημείο.
Παραδείγματα δυαδικών αριθμών
Το δυαδικό "nybble" 0101 έχει 1 στο 1 και το 4, και το 0 στο 2 και το 8. Έτσι, το δεκαδικό του ισοδύναμο είναι 1 + 4 = 5.
Ομοίως, το byte 1001 1100 ισοδυναμεί με 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.
ο συμπλήρωμα ενός δυαδικού αριθμού είναι απλώς ο αριθμός με τα ψηφία του "αλλαγμένα". Για παράδειγμα, το συμπλήρωμα 1001 1100 = 0110 0011.
Μετατροπή αρνητικών αριθμών σε δυαδικό
Ο τρόπος με τον οποίο μετατρέπετε έναν αρνητικό δεκαδικό αριθμό σε δυαδικό αριθμό είναι μάλλον σε αντίθεση με άλλες αριθμητικές μετατροπές έχετε αποδώσει επειδή το μυαλό σας, για όλη τη συγκριτική νωθρότητα του, είναι πολύ πιο ευέλικτο με τους περισσότερους τρόπους από οποιονδήποτε άλλο ΕΠΕΞΕΡΓΑΣΤΗΣ. Ωστόσο, είναι μια απλή διαδικασία.
Η μετατροπή γίνεται χρησιμοποιώντας ένα δυαδικό συμπλήρωμα δύο, που απαιτεί από τον προγραμματιστή να δώσει εντολή στον υπολογιστή να ερμηνεύσει οποιονδήποτε δυαδικό αριθμό που ξεκινά με 1 ως αρνητικό. Το πρόγραμμα τότε κατασκευάζει τον αντίστοιχο θετικό αριθμό σε δυαδικό, παίρνει το συμπλήρωμά του και προσθέτει έναν.
Για παράδειγμα, δεδομένου του αριθμού −47, ο υπολογιστής θα δημιουργήσει τον δυαδικό αριθμό για +47:
0001 1111
Το συμπλήρωμα αυτού είναι:
1110 0000
Η προσθήκη ενός σε αυτό δίνει:
1110 0001
Σημειώστε ότι ο υπολογιστής έχει "υπογράψει" αυτούς τους αριθμούς για να θεωρήσει τον αρχικό 1 αρνητικό και να επεξεργαστεί τα αποτελέσματα διαφορετικά από την απλή προσθήκη των δυνάμεων του 2 που καταλαμβάνει το σύμβολο 1.