Partilhar via


Convertendo não assinado em assinado

Os objetos de tipos integrais sem sinal podem ser convertidos nos tipos com sinal correspondentes. No entanto, essa conversão poderá causar a interpretação errônea dos dados se o valor do objeto sem sinal estiver fora do intervalo representável pelo tipo com sinal, como é demonstrado no seguinte exemplo:

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 acima, u é um objeto integral unsigned short que deve ser convertido em uma quantidade com sinal para avaliar a expressão (i = u). Como seu valor não pode ser representado adequadamente em um signed short, os dados são interpretados incorretamente, como mostrado.

Consulte também

Referência

Conversões integrais