Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn eine ganze Zahl mit Vorzeichen in einen Integer- oder Gleitkommatyp konvertiert wird, bleibt der Wert unverändert, wenn er im Ergebnistyp darstellbar ist.
Wenn eine ganze Zahl mit Vorzeichen in eine größere ganze Zahl konvertiert wird, wird der Wert mit einem Vorzeichen 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:
int i = -3;
unsigned short u;
u = i;
printf_s( "%hu\n", u ); // Prints 65533
Wenn der Compiler eine ganze Zahl mit 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.
In der folgenden Tabelle sind die Konvertierungen von ganzzahligen Typen mit Vorzeichen zusammengefasst. Es wird davon ausgegangen, dass der Typ char standardmäßig ein Vorzeichen aufweist. Wenn Sie eine Kompilierzeitoption verwenden, um den Standardwert für den char-Typ in einen Typ ohne Vorzeichen zu ändern, gelten anstelle der Konvertierungen in dieser Tabelle die Konvertierungen aus der Tabelle Konvertierungen von integralen Typen ohne Vorzeichen für den Typ unsigned char.
Microsoft-spezifisch
Im Microsoft-Compiler sind int und long eindeutige aber äquivalente Typen. Die Konvertierung eines int -Werts wird auf dieselbe Weise wie die Konvertierung eines long -Werts ausgeführt.
Ende Microsoft-spezifisch
Tabelle mit Konvertierungen von integralen Typen mit Vorzeichen
| Von | Beschreibung | Methode |
|---|---|---|
char
1 |
short |
Signaturerweiterung |
char |
long |
Signaturerweiterung |
char |
long long |
Signaturerweiterung |
char |
unsigned char |
Muster beibehalten; oberes Bit verliert Funktion als Vorzeichenbit |
char |
unsigned short |
Vorzeichenerweiterung zu short ; Konvertieren von short zu unsigned short |
char |
unsigned long |
Vorzeichenerweiterung zu long ; Konvertieren von long zu unsigned long |
char |
unsigned long long |
Vorzeichenerweiterung zu long long ; Konvertieren von long long zu unsigned long long |
char |
float |
Darstellung genau wie float |
char |
double |
Darstellung genau wie double |
char |
long double |
Darstellung genau wie long double |
short |
char |
Niederwertiges Byte beibehalten |
short |
long |
Signaturerweiterung |
short |
long long |
Signaturerweiterung |
short |
unsigned char |
Niederwertiges Byte beibehalten |
short |
unsigned short |
Bitmuster beibehalten; höherwertiges Bit verliert Funktion als Vorzeichenbit |
short |
unsigned long |
Vorzeichenerweiterung zu long ; Konvertieren von long zu unsigned long |
short |
unsigned long long |
Vorzeichenerweiterung zu long long ; Konvertieren von long long zu unsigned long long |
short |
float |
Darstellung genau wie float |
short |
double |
Darstellung genau wie double |
short |
long double |
Darstellung genau wie long double |
long |
char |
Niederwertiges Byte beibehalten |
long |
short |
Niederwertiges Wort beibehalten |
long |
long long |
Signaturerweiterung |
long |
unsigned char |
Niederwertiges Byte beibehalten |
long |
unsigned short |
Niederwertiges Wort beibehalten |
long |
unsigned long |
Bitmuster beibehalten; höherwertiges Bit verliert Funktion als Vorzeichenbit |
long |
unsigned long long |
Vorzeichenerweiterung zu long long ; Konvertieren von long long zu unsigned long long |
long |
float |
Darstellen als float . Wenn long nicht genau dargestellt werden kann, wirkt sich dies auf die Genauigkeit aus. |
long |
double |
Darstellung genau wie double |
long |
long double |
Darstellung genau wie long double |
long long |
char |
Niederwertiges Byte beibehalten |
long long |
short |
Niederwertiges Wort beibehalten |
long long |
long |
Niederwertigen dword-Wert beibehalten |
long long |
unsigned char |
Niederwertiges Byte beibehalten |
long long |
unsigned short |
Niederwertiges Wort beibehalten |
long long |
unsigned long |
Niederwertigen dword-Wert beibehalten |
long long |
unsigned long long |
Bitmuster beibehalten; höherwertiges Bit verliert Funktion als Vorzeichenbit |
long long |
float |
Darstellen als float . Wenn long long nicht genau dargestellt werden kann, wirkt sich dies auf die Genauigkeit aus. |
long long |
double |
Darstellen als double . Wenn long long nicht genau als double dargestellt werden kann, wirkt sich dies auf die Genauigkeit aus. |
long long |
long double |
Darstellen als double . Wenn long long nicht genau als double dargestellt werden kann, wirkt sich dies auf die Genauigkeit aus. |
1 Bei allen char -Einträgen wird davon ausgegangen, dass der char -Typ standardmäßig ein Vorzeichen hat.