Sdílet prostřednictvím


Převody z integrálních typů bez znaménka

Pokud je celé číslo bez znaménka převedeno na celé číslo nebo typ s plovoucí desetinnou čárkou, je-li původní hodnota reprezentovatelná v typu výsledku, hodnota se nezmění.

Když kompilátor převede celé číslo bez znaménka na celé číslo větší velikosti, hodnota je nulou rozšířena. Při převodu na celé číslo menší velikosti se bity s vysokým pořadím zkrátí. Výsledek se interpretuje pomocí typu výsledku, jak je znázorněno v tomto příkladu:

unsigned k = 65533;
short j;

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

Když kompilátor převede celé číslo bez znaménka na typ s plovoucí desetinnou čárkou, pokud původní hodnota není přesně reprezentovatelná v typu výsledku, je výsledkem další vyšší nebo nižší reprezentovatelná hodnota.

Informace o velikostech integrálních typů a typech s plovoucí desetinou čárkou najdete v tématu Úložiště základních typů .

Specifické pro Microsoft

V kompilátoru unsigned Microsoftu (nebo unsigned int) jsou unsigned long odlišné, ale ekvivalentní typy. unsigned int Převod hodnoty pokračuje stejným způsobem jako převod hodnoty unsigned long.

END Microsoft Specific

Následující tabulka shrnuje převody z celočíselných typů bez znaménka.

Tabulka převodů z celočíselných typů bez znaménka

Z Záměr metoda
unsigned char char Zachovat bitový vzor; Bit s vysokým pořadím se změní na bit znaménka.
unsigned char short Nulové rozšíření
unsigned char long Nulové rozšíření
unsigned char long long Nulové rozšíření
unsigned char unsigned short Nulové rozšíření
unsigned char unsigned long Nulové rozšíření
unsigned char unsigned long long Nulové rozšíření
unsigned char float Převést přesně na float
unsigned char double Převést přesně na double
unsigned char long double Převést přesně na long double
unsigned short char Zachování bajtů s nízkým pořadím
unsigned short short Zachovat bitový vzor; Bit s vysokým pořadím se změní na bit znaménka.
unsigned short long Nulové rozšíření
unsigned short long long Nulové rozšíření
unsigned short unsigned char Zachování bajtů s nízkým pořadím
unsigned short unsigned long Nulové rozšíření
unsigned short unsigned long long Nulové rozšíření
unsigned short float Převést přesně na float
unsigned short double Převést přesně na double
unsigned short long double Převést přesně na long double
unsigned long char Zachování bajtů s nízkým pořadím
unsigned long short Zachování slova s nízkým pořadím
unsigned long long Zachovat bitový vzor; Bit s vysokým pořadím se změní na bit znaménka.
unsigned long long long Nulové rozšíření
unsigned long unsigned char Zachování bajtů s nízkým pořadím
unsigned long unsigned short Zachování slova s nízkým pořadím
unsigned long unsigned long long Nulové rozšíření
unsigned long float Převod na nejbližší reprezentovatelné float
unsigned long double Převést přesně na double
unsigned long long double Převést přesně na long double
unsigned long long char Zachování bajtů s nízkým pořadím
unsigned long long short Zachování slova s nízkým pořadím
unsigned long long long Zachování dwordu s nízkým pořadím
unsigned long long long long Zachovat bitový vzor; Bit s vysokým pořadím se změní na bit znaménka.
unsigned long long unsigned char Zachování bajtů s nízkým pořadím
unsigned long long unsigned short Zachování slova s nízkým pořadím
unsigned long long unsigned long Zachování dwordu s nízkým pořadím
unsigned long long float Převod na nejbližší reprezentovatelné float
unsigned long long double Převod na nejbližší reprezentovatelné double
unsigned long long long double Převod na nejbližší reprezentovatelné long double

Viz také

Převody přiřazení