Διαφορά μεταξύ υπογεγραμμένου και μη υπογεγραμμένου Διαφορά μεταξύ

Anonim

Υπογεγραμμένα vs Μη υπογεγραμμένα

Το σύστημα αριθμών μας εκτείνεται από αρνητικό άπειρο σε θετικό άπειρο με μηδέν δεξιά στη μέση. Ωστόσο, στον προγραμματισμό, υπάρχουν βασικά δύο τύποι αριθμών. το υπογεγραμμένο και μη υπογεγραμμένο. Η κύρια διαφορά μεταξύ υπογεγραμμένου και μη υπογεγραμμένου αριθμού είναι η ικανότητα χρήσης αρνητικών αριθμών. Οι αριθμοί που δεν έχουν υπογραφεί μπορούν να έχουν μόνο μηδενικές ή μεγαλύτερες τιμές. Αντίθετα, οι υπογεγραμμένοι αριθμοί είναι πιο φυσικοί με ένα εύρος που περιλαμβάνει αρνητικούς σε θετικούς αριθμούς.

Η δημιουργία υπογεγραμμένων και μη υπογεγραμμένων αριθμών προκλήθηκε από την ανάγκη να αντιπροσωπεύονται αριθμητικές τιμές με πολύ περιορισμένους πόρους. Για παράδειγμα, χρησιμοποιώντας 8 bits, έχετε συνολικά 256 συνδυασμούς. Με έναν μη υπογεγραμμένο αριθμό, αυτό σημαίνει οποιαδήποτε τιμή μεταξύ 0 και 255. Αντίθετα, η κατοχή ενός υπογεγραμμένου αριθμού σημαίνει ότι ήδη χάνετε λίγο για την αναπαραγωγή του σημείου. Με 7 bits έχετε μέχρι και 128 συνδυασμούς, οπότε η σειρά σας με υπογεγραμμένο αριθμό 8 bit είναι από -128 έως 127. Επομένως, εάν έχετε περιορισμένους πόρους, όπως στις πρώτες μέρες της χρήσης υπολογιστών, ο τρόπος εκτέλεσης με τη χρήση μη υπογεγραμμένων αριθμών.

Όταν χρησιμοποιείτε υπογεγραμμένους και μη υπογεγραμμένους αριθμούς στον προγραμματισμό, είναι ασφαλέστερο να χρησιμοποιείτε μόνο το ένα ή το άλλο, καθώς ταυτόχρονα και με τις δύο μπορεί να έχει ως αποτέλεσμα προβλήματα. Το πρώτο είναι όταν συγκρίνετε ένα μη υπογεγραμμένο με έναν υπογεγραμμένο αριθμό. Αυτό συνήθως οδηγεί σε προειδοποιήσεις, αλλά ο μεταγλωττιστής θα μπορούσε να το καταρτίσει ούτως ή άλλως. Το δεύτερο και πιο σοβαρό πρόβλημα είναι όταν εκχωρείτε το περιεχόμενο ενός μη υπογεγραμμένου αριθμού σε έναν υπογεγραμμένο αριθμό. Εάν η τιμή του μη υπογεγραμμένου αριθμού είναι μεγαλύτερη από τη μέγιστη τιμή του υπογεγραμμένου αριθμού, αυτό θα οδηγούσε σε σφάλμα.

Καθώς η τεχνολογία αναπτύχθηκε, οι πόροι έχουν γίνει πιο άφθονοι και η χρήση των μη υπογεγραμμένων αριθμών καθίσταται ολοένα και λιγότερο αναγκαία. Για να το δείξουμε αυτό, λάβετε υπόψη ότι ένας αριθμός 32 bit μπορεί να έχει μέγιστη υπογεγραμμένη αξία 2 εκατομμυρίων ή 4 εκατομμυρίων, αν δεν είναι υπογεγραμμένη. Όταν μετακινείτε σε 64 bit, η διαφορά είναι μεταξύ 90 και 180 quintillion. αξίες που χρησιμοποιούνται σπάνια αν υπάρχουν καθόλου σε κοινά προγράμματα.

Περίληψη:

1. Ο αριθμός που δεν έχει υπογραφεί περιλαμβάνει μόνο μηδενικούς και θετικούς αριθμούς, ενώ οι υπογεγραμμένοι αριθμοί περιλαμβάνουν αρνητικούς αριθμούς.

2. Οι υπογεγραμμένοι αριθμοί έχουν το ήμισυ της μέγιστης τιμής των μη υπογεγραμμένων αριθμών.

3. Η ανάμειξη υπογεγραμμένων και μη υπογεγραμμένων αριθμών μπορεί να προκαλέσει προβλήματα.

4. Η χρήση υπογεγραμμένων ή μη υπογεγραμμένων αριθμών δεν έχει μεγάλη σημασία στις σύγχρονες εφαρμογές.