Compartilhar via


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.

Consulte também

Referência

Conversões integrais