A conversão não assinado assinado
Objetos de tipos de inteiro não assinados podem ser convertidos em tipos assinados correspondentes.No entanto, tal conversão pode causar a má interpretação dos dados se o valor do objeto não assinado está fora do intervalo representáveis pelo tipo assinado, conforme demonstrado no exemplo a seguir:
Exemplo
// 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";
}
Saída
-3
No exemplo anterior, u é um unsignedcurto objeto integral que deve ser convertido para uma quantidade assinada para avaliar a expressão (i = u). Como seu valor não pode ser adequadamente representado em um signed short, os dados é mal interpretados como mostrado.