Freigeben über


Konvertierungen von integralen Typen ohne Vorzeichen

Wenn eine ganze Zahl ohne Vorzeichen in einen Integer- oder einen Gleitkommatyp konvertiert wird, bleibt der Wert unverändert, falls der ursprüngliche Wert im Ergebnistyp darstellbar ist.

Wenn der Compiler eine ganze Zahl ohne Vorzeichen in eine größere ganze Zahl konvertiert, wird der Wert mit 0 erweitert. Wenn sie in eine kleinere ganze Zahl konvertiert wird, werden die höherwertigen Bits abgeschnitten. Das Ergebnis wird mithilfe des Ergebnistyps wie in diesem Beispiel gezeigt interpretiert:

unsigned k = 65533;
short j;

j = k;
printf_s( "%hd\n", j );   // Prints -3

Wenn der Compiler eine ganze Zahl ohne Vorzeichen in einen Gleitkommatyp konvertiert, ist das Ergebnis der nächsthöhere oder -niedrigere darstellbare Wert, falls der ursprüngliche Wert nicht genau im Ergebnistyp darstellbar ist.

Informationen über die Größen der Integer- und Gleitkommatypen finden Sie unter Speicherverwendung der grundlegenden Typen.

Microsoft-spezifisch

Im Microsoft-Compiler sind die Werte unsigned (oder unsigned int ) und unsigned long eindeutige aber äquivalente Typen. Die Konvertierung eines unsigned int-Werts wird auf dieselbe Weise wie die Konvertierung eines unsigned long-Werts ausgeführt.

Ende Microsoft-spezifisch

In der folgenden Tabelle werden die Konvertierungen von ganzzahligen Typen ohne Vorzeichen zusammengefasst.

Tabelle mit Konvertierungen von integralen Typen ohne Vorzeichen

Von Beschreibung Methode
unsigned char char Bitmuster wird beibehalten; oberes Bit wird Vorzeichenbit
unsigned char short Nullerweiterung
unsigned char long Nullerweiterung
unsigned char long long Nullerweiterung
unsigned char unsigned short Nullerweiterung
unsigned char unsigned long Nullerweiterung
unsigned char unsigned long long Nullerweiterung
unsigned char float Genaue Konvertierung in float
unsigned char double Genaue Konvertierung in double
unsigned char long double Genaue Konvertierung in long double
unsigned short char Niederwertiges Byte beibehalten
unsigned short short Bitmuster wird beibehalten; oberes Bit wird Vorzeichenbit
unsigned short long Nullerweiterung
unsigned short long long Nullerweiterung
unsigned short unsigned char Niederwertiges Byte beibehalten
unsigned short unsigned long Nullerweiterung
unsigned short unsigned long long Nullerweiterung
unsigned short float Genaue Konvertierung in float
unsigned short double Genaue Konvertierung in double
unsigned short long double Genaue Konvertierung in long double
unsigned long char Niederwertiges Byte beibehalten
unsigned long short Niederwertiges Wort beibehalten
unsigned long long Bitmuster wird beibehalten; oberes Bit wird Vorzeichenbit
unsigned long long long Nullerweiterung
unsigned long unsigned char Niederwertiges Byte beibehalten
unsigned long unsigned short Niederwertiges Wort beibehalten
unsigned long unsigned long long Nullerweiterung
unsigned long float Konvertierung in nächstmöglichen darstellbaren float
unsigned long double Genaue Konvertierung in double
unsigned long long double Genaue Konvertierung in long double
unsigned long long char Niederwertiges Byte beibehalten
unsigned long long short Niederwertiges Wort beibehalten
unsigned long long long Niederwertigen dword-Wert beibehalten
unsigned long long long long Bitmuster wird beibehalten; oberes Bit wird Vorzeichenbit
unsigned long long unsigned char Niederwertiges Byte beibehalten
unsigned long long unsigned short Niederwertiges Wort beibehalten
unsigned long long unsigned long Niederwertigen dword-Wert beibehalten
unsigned long long float Konvertierung in nächstmöglichen darstellbaren float
unsigned long long double Konvertierung in nächstmöglichen darstellbaren double
unsigned long long long double Konvertierung in nächstmöglichen darstellbaren long double

Siehe auch

Zuweisungskonvertierungen