Freigeben über


Konvertieren von Elementen ohne Vorzeichen in Elemente mit Vorzeichen

Objekte aus Ganzzahltypen ohne Vorzeichen können in entsprechende Typen mit Vorzeichen konvertiert werden. Allerdings kann eine solche Konvertierung zur Fehlinterpretation von Daten führen, wenn der Wert des vorzeichenlosen Objekts außerhalb des Bereichs liegt, der vom Typ mit Vorzeichen darstellbar ist, wie im folgenden Beispiel veranschaulicht:

Beispiel

// conve__pluslang_Converting_Unsigned_to_Signed.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
int main()
{
 short  i;
 unsigned short u = 65533;

 cout << (i = u) << "\n";
}

Ausgabe

-3

Im vorherigen Beispiel ist u ein unsigned short ganzzahliges Objekt, das auf eine Menge mit Vorzeichen konvertiert werden muss, um den Ausdruck (i = u) auszuwerten. Da der Wert nicht ordnungsgemäß in einem signed short dargestellt werden kann, werden die Daten wie gezeigt fehlinterpretiert.

Siehe auch

Referenz

Ganzzahlkonvertierungen