Partager via


Conversions de types intégraux signés

Lorsqu'un entier signé est converti en entier non signé avec égal ou une taille supérieure et la valeur de l'entier signé n'est pas négative, la valeur est inchangée.La conversion est effectuée signe-en étendant l'entier signé.Entier signé est converti en entier signé plus court en tronquant les bits de poids fort.Le résultat est soit une valeur non signée, comme illustré dans cet exemple.

int i = -3;
unsigned short u;

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

Aucune information n'est perdue lorsqu'un entier signé est converti en une valeur flottante, sauf que de la précision peut être perdues lorsque la valeur de long int ou de long entier non signé est convertie en une valeur float.

Le tableau suivant répertorie les conversions des types intégraux signés.ce tableau suppose que le type d' char est signé par défaut.Si vous utilisez une option de compilation de modifier la valeur par défaut pour le type d' char à non signé, les conversions données dans la table de conversions des types intégraux non signés pour le type d' unsigned char s'appliquent au lieu des conversions dans le tableau suivant, conversions des types intégraux signés.

conversions des types intégraux signés

From

Pour

Méthode

char1

short

Signe-étendez

char

long

Signe-étendez

char

unsigned char

Modèle de conserver ; le bit de poids fort perd la fonction comme bit de signe

char

unsigned short

Signe-étendez à short; convertissez short à unsigned short

char

unsigned long

Signe-étendez à long; convertissez long à unsigned long

char

float

Signe-étendez à long; convertissez long à float

char

double

Signe-étendez à long; convertissez long à double

char

long double

Signe-étendez à long; convertissez long à double

short

char

Octet de poids faible de conserver

short

long

Signe-étendez

short

unsigned char

Octet de poids faible de conserver

short

unsigned short

Modèle binaire de conserver ; le bit de poids fort perd la fonction comme bit de signe

short

unsigned long

Signe-étendez à long; convertissez long à unsigned long

short

float

Signe-étendez à long; convertissez long à float

short

double

Signe-étendez à long; convertissez long à double

short

long double

Signe-étendez à long; convertissez long à double

long

char

Octet de poids faible de conserver

long

short

Conservez le mot de poids faible

long

unsigned char

Octet de poids faible de conserver

long

unsigned short

Conservez le mot de poids faible

long

unsigned long

Modèle binaire de conserver ; le bit de poids fort perd la fonction comme bit de signe

long

float

Représentation sous forme float.Si long ne peut pas être représenté exactement, de précision est perdue.

long

double

Représentation sous forme double.Si long ne peut pas être représenté exactement comme double, de précision est perdue.

long

long double

Représentation sous forme double.Si long ne peut pas être représenté exactement comme double, de précision est perdue.

1.toutes les entrées d' char supposent que le type d' char est signé par défaut.

Spécifique à Microsoft

pour le compilateur C 32 bits de Microsoft, un entier est équivalent à long.La conversion d'une valeur d' int continue avec les mêmes que pour long.

détail de FIN Microsoft

Voir aussi

Concepts

Conversions d'assignation