Differenz zwischen Signed und Unsigned Unterschied zwischen

Anonim

Signed vs Unsigned

Unser Zahlensystem erstreckt sich von negativ unendlich bis positiv unendlich mit Null rechts in der Mitte. In der Programmierung gibt es grundsätzlich zwei Arten von Zahlen; die signierten und unsignierten. Der Hauptunterschied zwischen einer vorzeichenbehafteten und einer vorzeichenlosen Nummer ist die Möglichkeit, negative Zahlen zu verwenden. Vorzeichenlose Zahlen können nur Werte von null oder größer haben. Im Gegensatz dazu sind vorzeichenbehaftete Zahlen natürlicher mit einem Bereich, der negative bis positive Zahlen enthält.

Die Erstellung von vorzeichenbehafteten und vorzeichenlosen Nummern wurde durch die Notwendigkeit, numerische Werte mit sehr begrenzten Ressourcen darzustellen, ausgelöst. Zum Beispiel haben Sie mit 8 Bits insgesamt nur 256 Kombinationen. Bei einer vorzeichenlosen Zahl bedeutet das einen Wert zwischen 0 und 255. Wenn Sie dagegen eine vorzeichenbehaftete Zahl haben, verlieren Sie bereits ein wenig, wenn Sie das Zeichen darstellen. Mit 7 Bits haben Sie maximal 128 Kombinationen, so dass Ihre Reichweite mit einer 8 Bit signierten Zahl zwischen -128 und 127 liegt. Wenn Sie also, wie in den frühen Tagen des Rechnens, nur über begrenzte Ressourcen verfügen, sollten Sie unsignierte Zahlen verwenden.

Wenn Sie bei der Programmierung vorzeichenbehaftete und vorzeichenlose Nummern verwenden, ist es sicherer, nur das eine oder das andere zu verwenden, da beide gleichzeitig Probleme verursachen können. Die erste ist, wenn Sie eine vorzeichenlose mit einer vorzeichenbehafteten Zahl vergleichen. Dies führt normalerweise zu Warnungen, aber der Compiler könnte sie trotzdem kompilieren. Das zweite und ernstere Problem besteht darin, dass Sie den Inhalt einer vorzeichenlosen Nummer einer vorzeichenbehafteten Nummer zuweisen. Wenn der Wert der vorzeichenlosen Zahl größer als der maximale Wert der vorzeichenbehafteten Zahl ist, würde dies zu einem Fehler führen.

Mit der Entwicklung der Technologie sind die Ressourcen umfangreicher geworden, und die Verwendung von Zahlen ohne Vorzeichen wird immer weniger notwendig. Beachten Sie, dass eine 32-Bit-lange Zahl einen maximal signierten Wert von 2 Millionen oder 4 Millionen aufweisen kann, wenn sie nicht signiert ist. Wenn Sie sich in 64 Bits bewegen, beträgt der Unterschied zwischen 90 und 180 Trillionen; Werte, die nur selten in gemeinsamen Programmen verwendet werden.

Zusammenfassung:

1. Vorzeichenlose Zahlen enthalten nur Null und positive Zahlen, während vorzeichenbehaftete Zahlen negative Zahlen enthalten.

2. Vorzeichenbehaftete Nummern haben den halben Höchstwert vorzeichenloser Nummern.

3. Das Mischen von Nummern mit und ohne Vorzeichen kann zu Problemen führen.

4. Die Verwendung von Nummern mit oder ohne Vorzeichen hat in modernen Anwendungen wenig Bedeutung.