Freigeben über


Konvertierungen ganzzahligen Typen von signierten

Wenn eine Zahl mit Vorzeichen in eine ganze Zahl ohne Vorzeichen mit gleichem konvertiert wird, oder eine größere Größe und der Wert der Zahl mit Vorzeichen nicht negativ ist, wird der Wert unverändert.Die Konvertierung erfolgt durch Aufruf der Zahl mit Vorzeichen SIGN-erweitert.Eine ganze Zahl mit Vorzeichen wird zu einer kürzeren Zahl mit Vorzeichen konvertiert, indem die höherwertigen Bits abgeschnitten wird.Das Ergebnis wird als Wert ohne Vorzeichen, wie in diesem Beispiel gezeigt interpretiert.

int i = -3;
unsigned short u;

u = i; 
printf_s( "%hu\n", u );  // Prints 65533 

Es werden keine Daten gehen verloren, wenn eine Ganzzahl mit Vorzeichen in einen Gleitkommawert konvertiert wird, außer dass einige Genauigkeit ist möglicherweise verloren, wenn ein long int oder unsigned long intfloat-Wert in einen Wert konvertiert wird.

In der folgenden Tabelle werden die Konvertierungen von Ganzzahltypen mit Vorzeichen zusammen.Diese Tabelle wird davon ausgegangen, dass der Typ char standardmäßig signiert ist.Wenn Sie eine Option zur Kompilierzeit verwenden, um den Standardwert für den char-Typ ohne Vorzeichen zu ändern, gelten die Konvertierungen, die in der Konvertierungen von Ganzzahltypen ohne Vorzeichen Tabelle für den angegebenen Typ unsigned char anstelle von Konvertierungen in der folgenden Tabelle Konvertierungen von Ganzzahltypen mit Vorzeichen zu.

Konvertierungen ganzzahligen Typen von signierten

Von

To

Methode

char1

short

Erweitern

char

long

Erweitern

char

unsigned char

preserve Entwurfsmuster. Vorzeichenbit als Funktion mit dem höchstwertigen Bits verloren hat

char

unsigned short

Erweitern shortsoll. konvertieren Sie short zu short ohne Vorzeichen

char

unsigned long

Erweitern longsoll. konvertieren Sie long zu unsigned long

char

float

Erweitern longsoll. konvertieren Sie long zu float

char

double

Erweitern longsoll. konvertieren Sie long zu double

char

long double

Erweitern longsoll. konvertieren Sie long zu double

short

char

preserve niedrigstwertiges byte

short

long

Erweitern

short

unsigned char

preserve niedrigstwertiges byte

short

unsigned short

preserve bitmuster. Vorzeichenbit als Funktion mit dem höchstwertigen Bits verloren hat

short

unsigned long

Erweitern longsoll. konvertieren Sie long zu unsigned long

short

float

Erweitern longsoll. konvertieren Sie long zu float

short

double

Erweitern longsoll. konvertieren Sie long zu double

short

long double

Erweitern longsoll. konvertieren Sie long zu double

long

char

preserve niedrigstwertiges byte

long

short

preserve niederwertiges wort

long

unsigned char

preserve niedrigstwertiges byte

long

unsigned short

preserve niederwertiges wort

long

unsigned long

preserve bitmuster. Vorzeichenbit als Funktion mit dem höchstwertigen Bits verloren hat

long

float

Geben Sie als floatdar.Wenn nicht genau long dargestellt werden kann, ist etwas Genauigkeit verloren.

long

double

Geben Sie als doubledar.Wenn long nicht als doubleexakt dargestellt werden kann, ist etwas Genauigkeit verloren.

long

long double

Geben Sie als doubledar.Wenn long nicht als doubleexakt dargestellt werden kann, ist etwas Genauigkeit verloren.

1.Alle Einträge char davon ausgegangen, dass der Typ char standardmäßig signiert ist.

Microsoft-spezifisch

Eine 32-Bit- C# Compiler Microsoft ist eine ganze Zahl long.Konvertierung eines int-Werts verwendet dieselben wie für longfort.

BEENDEN Sie Microsoft-Besonderen

Siehe auch

Konzepte

Zuweisungskonvertierungen