Condividi tramite


Convertire senza segno a firmato

Gli oggetti di tipi integrali unsigned possono essere convertiti nei tipi signed corrispondenti.Tuttavia, tale conversione può causare l'errata interpretazione dei dati se il valore dell'oggetto senza segno è compreso nell'intervallo rappresentabile dal tipo con segno, come illustrato nell'esempio seguente:

Esempio

// 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";
}

Output

-3

Nell'esempio precedente, u viene unsigned short oggetto integrale che deve essere convertito in una quantità con segno per valutare l'espressione (i = u).Poiché il valore non può essere correttamente rappresentato in un oggetto signed short, i dati vengono interpretati erroneamente come illustrato.

Vedere anche

Riferimenti

Conversioni integrali