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.