Περιεχόμενο
Επειδή το σύστημα δυαδικών αριθμών έχει μόνο δύο σύμβολα - 1 και 0 - που αντιπροσωπεύουν αρνητικούς αριθμούς δεν είναι τόσο απλό όσο η προσθήκη σημείου μείον μπροστά. Υπάρχουν, ωστόσο, απλοί τρόποι να αντιπροσωπεύσουμε έναν αρνητικό αριθμό σε δυαδικό. Αυτό το άρθρο θα προσφέρει τρεις λύσεις σε αυτό το πρόβλημα.
Χρησιμοποιήστε ένα Bit Sign
Επιλέξτε τον αριθμό των δυαδικών ψηφίων που θα χρησιμοποιήσετε για να αναπαραστήσετε τους δυαδικούς σας αριθμούς. Ένας αριθμός οκτώ-δυαδικών ψηφίων χρησιμοποιείται από μακρού ως πρότυπο. Ήταν το αρχικό μέγεθος για έναν ακέραιο στον προγραμματισμό υπολογιστών. Φυσικά, υπάρχουν επίσης και ακέραιοι αριθμοί (16 bits). Σημείωση: εάν χρησιμοποιείτε ακέραιο αριθμό οκτώ μπιτ, τότε μόνο επτά bits θα χρησιμοποιηθούν για να αντιπροσωπεύσουν τον πραγματικό αριθμό σας.
Επιλέξτε το πιο αριστερό κομμάτι για να χρησιμεύσει ως bit σημείου. Εάν το bit είναι 0, ο αριθμός είναι θετικός. Αν είναι 1, ο αριθμός είναι αρνητικός.
Γράψτε τον αρνητικό αριθμό χρησιμοποιώντας και τα οκτώ bits. Επομένως ο αριθμός -5 θα γραφτεί ως 10000101.
Χρησιμοποιώντας 1s Compliment
Γράψτε τον αριθμό σε δυαδικό όπως θα κάνατε αν ήταν θετικό. Και πάλι, γράψτε 5 ως 00000101, υποθέτοντας ότι χρησιμοποιούμε ακέραιους οκτώ δυαδικών ψηφίων.
Ανατρέψτε τα ψηφία - δηλ. 1s πηγαίνετε στο 0s και 0s πηγαίνετε στο 1s. Επομένως, το 5 γίνεται 11111010.
Χρησιμοποιήστε το αριστερό κομμάτι ως το σήμα bit. Έτσι, όπως και με τη χρήση ενός bit σήματος, οι θετικοί αριθμοί θα έχουν όλα ένα πρωταρχικό bit (όταν είναι γραμμένο σε μορφή 8 bit), ενώ όλοι οι αρνητικοί αριθμοί θα περιέχουν το πρώτο. Για να χρησιμοποιήσετε τον αριθμό, χρησιμοποιήστε τις πληροφορίες bit σήματος και αναστρέψτε το πίσω ψηφία για αριθμητική τιμή.
Χρησιμοποιώντας 2s Compliment
Γράψτε τον αριθμό όπως θα ήταν θετικό, χρησιμοποιώντας και τα οκτώ κομμάτια. Έτσι 5 είναι 00000101.
Ανατρέψτε τα bits, αλλάζοντας τα 1s και 0s όπως κάνατε με το 1s compliment. Έτσι, πάλι, 5 γίνεται 11111010.
Προσθέστε 1 στον αριθμό σας. Έτσι, 5 γίνεται 11111010 + 00000001 = 11111011.
Ελεγξε την απάντησή σου. Ο αριθμός 11111011 θα μετατραπεί στη βάση 10: -128 + 64 + 32 + 16 + 8 + 0 + 2 + 1 = -5.