Datentyp unsigned


Indem Sie bei den Zeichen und Ganzzahlentypen das Vorzeichen ausschließen, können Sie deren Wertebereich so ändern, daß er bei Null beginnt und nur positive Zahlen umfaßt. Dies versetzt diese Typen in die Lage, Zahlen darzustellen, die zweimal so groß sind wie das vorzeichenbehafteten Typs.

Die unsign-Typen werden verwendet, wenn die dargestellten Zahlenmenge immer positiv sind - wie etwa bei der Dararstellung einer gezählten Menge von Gegenständen - oder wenn der positive Zahlenbereich des vorzeichenbehafteten Typs nicht mehr ausreichend groß ist.


Vorzeichenlose Ganzzahlentypen

Schlüsselwort niedrig hoch Speicher bytes
unsigned char 0 255 1
unsigned int 0 65535 2
unsigned long 0 4294967295 4

Um ein Ganzzahltyp in einen vorzeichenlosen Typ zu verwandeln, sellen Sie dem Schlüsselwort für den Datentyp das Schlüsselwort voran. Als Beispiel würde eine vorzeichenlose Variable vom Typ char folgendermaßen definier werden:

unsinged char ucharvar;

Das Überscgreiten des Wertebereichs von vorzeichenbehafteten Typen kann zu schwer auflärbaren Programmfehlern führen. Die Fehler können manchmal durch den Einsatz vorzeichenloser Typen von vornherein vermieden werden. Beispielweise speichert das folgende Programm die Konstante 25000 sowohl als Typ int in signedVar als auch als Variable vom Typ unsigned int in unsignVar.

// signtest.cpp // Prüft vorzeichenbehaftete und vorzeichenlose Ganzzahlen #include <iostream.h> void main() { int signedVar = 25000; // signed: -32768 bis 32767 unsigned int unsignVar = 25000; // unsigned: 0 bis 65535 signedVar = (signedVar * 2) / 3; // Berechnung überschreitet Wertebereich unsignVar = (signedVar * 2) / 3; // Berechnung innrthalb des Wertebereichs cout << "singnedVar = " << signedVar << endl; // Falsch -5178 cout << "unsignVar = " << unsignVar << endl; OK: 16666 }


12