Unterschied zwischen signiert und unsigniert

Signed vs Unsigned

Unser Zahlensystem reicht von negativer Unendlichkeit bis hin zu positiver Unendlichkeit mit Null in der Mitte. Bei der Programmierung gibt es jedoch grundsätzlich zwei Arten von Zahlen. das signierte und unsignierte. Der Hauptunterschied zwischen einer vorzeichenbehafteten und einer vorzeichenlosen Zahl besteht in der Möglichkeit, negative Zahlen zu verwenden. Vorzeichenlose Zahlen können nur Werte von Null oder mehr 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 Zahlen wurde durch die Notwendigkeit ausgelöst, numerische Werte mit sehr begrenzten Ressourcen darzustellen. Wenn Sie beispielsweise 8 Bit verwenden, haben Sie insgesamt nur 256 Kombinationen. Bei einer vorzeichenlosen Zahl bedeutet dies einen Wert zwischen 0 und 255. Im Gegensatz dazu bedeutet eine vorzeichenbehaftete Zahl, dass Sie bereits ein Bit für die Darstellung des Zeichens verlieren. Mit 7 Bits haben Sie maximal 128 Kombinationen, so dass Ihr Bereich mit einer vorzeichenbehafteten 8-Bit-Zahl zwischen -128 und 127 liegt. Wenn Sie also nur über begrenzte Ressourcen verfügen, wie in den Anfängen des Computers, sollten Sie vorzeichenlose Zahlen verwenden.

Bei der Verwendung von vorzeichenbehafteten und vorzeichenlosen Nummern in der Programmierung ist es einfacher, die eine oder die andere zu verwenden, da die gleichzeitige Verwendung beider Probleme zu Problemen führen kann. Der erste ist, wenn Sie eine vorzeichenlose Nummer mit einer vorzeichenbehafteten Nummer vergleichen. Dies führt normalerweise zu Warnungen, die der Compiler jedoch trotzdem kompilieren kann. Das zweite und gravierendere Problem besteht darin, dass Sie den Inhalt einer vorzeichenlosen Nummer einer signierten Nummer zuordnen. Wenn der Wert der vorzeichenlosen Nummer größer als der Maximalwert der vorzeichenbehafteten Nummer ist, führt dies zu einem Fehler.

Mit der Entwicklung der Technologie sind die Ressourcen immer zahlreicher geworden, und die Verwendung von nicht unterzeichneten Nummern wird immer weniger notwendig. Um dies zu veranschaulichen, beachten Sie, dass eine 32 Bit lange Zahl einen maximalen vorzeichenbehafteten Wert von 2 Millionen oder 4 Millionen haben kann, wenn sie nicht vorzeichenbehaftet ist. Wenn Sie sich in 64 Bits bewegen, liegt der Unterschied zwischen 90 und 180 Quintilion. Werte, die selten in allgemeinen Programmen verwendet werden.

Zusammenfassung:

1.Unignierte Zahlen enthalten nur Null und positive Zahlen, während vorzeichenbehaftete Zahlen negative Zahlen enthalten.
2.Zeichennummern haben die Hälfte des Maximalwerts von vorzeichenlosen Nummern.
3. Das Mischen von vorzeichenbehafteten und vorzeichenlosen Nummern kann zu Problemen führen.
4.Verwenden Sie vorzeichenbehaftete oder vorzeichenlose Zahlen in modernen Anwendungen wenig.