Konwertowanie niepodpisany, podpisany
Obiekty niepodpisane integralną typów można konwertować na odpowiadające im typy podpisane.Takie przeliczenie może jednak powodować błędnej interpretacji danych, jeśli wartość bez znaku obiektu jest poza zakresem reprezentowanych przez typ podpisanych, jak pokazano w poniższym przykładzie:
Przykład
// 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";
}
Dane wyjściowe
-3
W poprzednim przykładzie u jest unsignedkrótki integralną obiekt, który musi zostać przekonwertowana na podpisane ilość wyrażenia (i = u). Ponieważ jego wartość nie może właściwie reprezentowani w signed short, jest błędnie zinterpretowana danych, jak pokazano.