Unterschied zwischen signiert und nicht signiert
- 2529
- 29
- Kurt Reinelt
Signiert gegen nicht signiert
Unser Zahlsystem erstreckt sich von negativer Unendlichkeit bis positiver Unendlichkeit mit Null rechts in der Mitte. Bei der Programmierung gibt es jedoch grundsätzlich zwei Arten von Zahlen; das unterschrieben und nicht signiert. Der Hauptunterschied zwischen einem signierten und einer nicht signierten Zahl besteht darin, negative Zahlen zu verwenden. Unsignierte Zahlen können nur Werte von Null oder höher aufweisen. Im Gegensatz dazu sind signierte Zahlen natürlicher mit einem Bereich, der negative bis positive Zahlen umfasst.
Die Erstellung von unterschriebenen und nicht signierten Zahlen wurde durch die Notwendigkeit aufgefordert, numerische Werte mit sehr begrenzten Ressourcen darzustellen. Zum Beispiel haben Sie mit 8 Bit nur insgesamt 256 Kombinationen. Mit einer nicht signierten Zahl bedeutet dies einen Wert zwischen 0 und 255. Im Gegensatz dazu bedeutet eine signierte Zahl, dass Sie bereits etwas für die Darstellung des Zeichens verlieren. Mit 7 Bit haben Sie maximal 128 Kombinationen, sodass Ihr Bereich mit einer 8 -Bit -Nummer von -128 bis 127 liegt. Wenn Sie also nur begrenzte Ressourcen haben, wie in den frühen Berechnungstagen, war es der richtige Weg, unsignierte Zahlen zu verwenden.
Bei der Verwendung von signierten und nicht signierten Zahlen in der Programmierung ist es sicherer, nur das eine oder andere zu verwenden, da gleichzeitig beides zu Problemen führen kann. Das erste ist, wenn Sie eine Unsignation mit einer signierten Nummer vergleichen,. Dies führt typischerweise zu Warnungen, aber der Compiler könnte es trotzdem kompilieren. Das zweite und schwerwiegendere Problem ist, wenn Sie den Inhalt einer nicht signierten Nummer einer unterschriebenen Nummer zuweisen. Wenn der Wert der nicht signierten Zahl größer als der Maximalwert der signierten Zahl ist, würde dies zu einem Fehler führen.
Während sich die Technologie entwickelte, sind die Ressourcen häufiger geworden, und der Einsatz unsignierter Zahlen wird immer weniger notwendig. Um dies zu veranschaulichen, denken Sie daran, dass eine 32 -Bit -Zahl einen maximal unterzeichneten Wert von 2 oder 4 Millionen haben kann, wenn sie nicht signiert ist. Wenn Sie sich in 64 Bit bewegen, liegt der Unterschied zwischen 90 und 180 Quintillionen; Werte, die selten verwendet werden, wenn überhaupt, in gemeinsamen Programmen.
Zusammenfassung:
1.Die nicht signierte Zahl umfasst nur Null- und positive Zahlen, während signierte Zahlen negative Zahlen enthalten.
2.Die signierten Zahlen haben die Hälfte des Höchstwerts der nicht signierten Zahlen.
3.Das Mischen von signierten und nicht signierten Zahlen kann zu Problemen führen.
4.Die Verwendung von signierten oder nicht signierten Zahlen haben in modernen Anwendungen wenig Einfluss.