Partager via


Conversions depuis les types intégraux non signés

Quand un entier non signé est converti en un type entier ou à virgule flottante, si la valeur d’origine peut être représentée dans le type de résultat, la valeur est inchangée.

Lorsque le compilateur convertit un entier non signé en entier de plus grande taille, la valeur est étendue par zéro. Lorsqu’ils sont convertis en entier de taille inférieure, les bits d’ordre haut sont tronqués. Le résultat est interprété à l’aide du type de résultat, comme illustré dans cet exemple :

unsigned k = 65533;
short j;

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

Lorsque le compilateur convertit un entier non signé en type à virgule flottante, si la valeur d’origine ne peut pas être représentée exactement dans le type de résultat, le résultat est la valeur plus élevée ou plus faible pouvant être représentée suivante.

Pour plus d’informations sur les tailles des types intégraux et à virgule flottante, consultez Stockage de types de base.

Section spécifique à Microsoft

Dans le compilateur Microsoft, unsigned (ou unsigned int) et unsigned long sont des types distincts mais équivalents. La conversion d'une valeur unsigned int s'effectue de la même façon que la conversion de unsigned long.

FIN de la section spécifique à Microsoft

Le tableau suivant répertorie les conversions de types intégraux non signés.

Table des conversions à partir de types intégraux non signés

Du À Méthode
unsigned char char Conserver le modèle binaire. Le bit de poids fort devient un bit de signe
unsigned char short Extension zéro
unsigned char long Extension zéro
unsigned char long long Extension zéro
unsigned char unsigned short Extension zéro
unsigned char unsigned long Extension zéro
unsigned char unsigned long long Extension zéro
unsigned char float Convertir exactement en float
unsigned char double Convertir exactement en double
unsigned char long double Convertir exactement en long double
unsigned short char Conserver l'octet de poids faible
unsigned short short Conserver le modèle binaire. Le bit de poids fort devient un bit de signe
unsigned short long Extension zéro
unsigned short long long Extension zéro
unsigned short unsigned char Conserver l'octet de poids faible
unsigned short unsigned long Extension zéro
unsigned short unsigned long long Extension zéro
unsigned short float Convertir exactement en float
unsigned short double Convertir exactement en double
unsigned short long double Convertir exactement en long double
unsigned long char Conserver l'octet de poids faible
unsigned long short Conserver le mot de poids faible
unsigned long long Conserver le modèle binaire. Le bit de poids fort devient un bit de signe
unsigned long long long Extension zéro
unsigned long unsigned char Conserver l'octet de poids faible
unsigned long unsigned short Conserver le mot de poids faible
unsigned long unsigned long long Extension zéro
unsigned long float Convertir dans la valeur plus proche pouvant être représentée float
unsigned long double Convertir exactement en double
unsigned long long double Convertir exactement en long double
unsigned long long char Conserver l'octet de poids faible
unsigned long long short Conserver le mot de poids faible
unsigned long long long Conserver un mot dword d’ordre bas
unsigned long long long long Conserver le modèle binaire. Le bit de poids fort devient un bit de signe
unsigned long long unsigned char Conserver l'octet de poids faible
unsigned long long unsigned short Conserver le mot de poids faible
unsigned long long unsigned long Conserver un mot dword d’ordre bas
unsigned long long float Convertir dans la valeur plus proche pouvant être représentée float
unsigned long long double Convertir dans la valeur plus proche pouvant être représentée double
unsigned long long long double Convertir dans la valeur plus proche pouvant être représentée long double

Voir aussi

Conversions d’affectation