Sdílet prostřednictvím


Převody typů podepsané integrál

Když znaménkem je převeden na celé číslo bez znaménka s stejné nebo větší velikosti a není záporné hodnoty znaménkem, hodnota je beze změny.Převod je tvořeno znak rozšíření znaménkem.Podepsané celé číslo, bude převedena na kratší znaménkem zkrácením nejvyšších bitů.Výsledek je interpretován jako hodnota bez znaménka, jak ukazuje tento příklad.

int i = -3;
unsigned short u;

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

Žádné informace se neztratí při převodu znaménkem na pohyblivé, s výjimkou, že některé přesnost může dojít ke ztrátě při long int nebo nepodepsaný dlouhý int hodnota je převedena na plovoucí hodnotu.

Následující tabulka shrnuje převody z typů podepsané.Tato tabulka předpokládá, že char ve výchozím nastavení je podepsán typu.Použijte možnost kompilace změnit výchozí nastavení pro char typ bez znaménka, převody v převody z typů nepodepsané tabulky pro unsigned char typu použít namísto převody v následující tabulce převody z podepsané typů.

Převody typů podepsané integrál

Od

Akce

Metoda

char1

short

Znak rozšíření

char

long

Znak rozšíření

char

unsigned char

Zachovat vzorek; nejvyšších bitů ztratí funkce jako znaménkový bit

char

unsigned short

Znak rozšířit na krátké; převést krátké na nepodepsané krátké

char

unsigned long

Znak rozšířit na dlouhý; převést dlouhý naunsigned long

char

float

Znak rozšířit na dlouhý; převést dlouhý na float

char

double

Znak rozšířit na dlouhý; převést dlouhý na double

char

long double

Znak rozšířit na dlouhý; převést dlouhý na double

short

char

Zachovat dolní bajt

short

long

Znak rozšíření

short

unsigned char

Zachovat dolní bajt

short

unsigned short

Zachovat bit vzorek; nejvyšších bitů ztratí funkce jako znaménkový bit

short

unsigned long

Znak rozšířit na dlouhý; převést dlouhý naunsigned long

short

float

Znak rozšířit na dlouhý; převést dlouhý na float

short

double

Znak rozšířit na dlouhý; převést dlouhý na double

short

long double

Znak rozšířit na dlouhý; převést dlouhý na double

long

char

Zachovat dolní bajt

long

short

Zachovat nejnižší word

long

unsigned char

Zachovat dolní bajt

long

unsigned short

Zachovat nejnižší word

long

unsigned long

Zachovat bit vzorek; nejvyšších bitů ztratí funkce jako znaménkový bit

long

float

Představují jako plovoucí.Pokud dlouhý nemůže být zastoupeny přesně, některé je ztráta přesnosti.

long

double

Představují jako dvojité.Pokud dlouhý nelze přesně jako dvojité, dojde ke ztrátě některých přesnost.

long

long double

Představují jako dvojité.Pokud dlouhý nelze přesně jako dvojité, dojde ke ztrátě některých přesnost.

1.Všechny char položky se předpokládá, že char ve výchozím nastavení je podepsán typu.

Konkrétní společnosti Microsoft

C kompilátor Microsoft 32bitové celé číslo je ekvivalentní dlouhý.Převod int hodnotu pokračuje stejné jako pro dlouhé.

Konec konkrétní společnosti Microsoft

Viz také

Koncepty

Přiřazení převody