Konwersje z niepodpisanych typów całkowitych

Gdy liczba całkowita bez znaku jest konwertowana na typ liczby całkowitej lub zmiennoprzecinkowej, jeśli oryginalna wartość jest reprezentowana w typie wyniku, wartość pozostaje niezmieniona.

Podczas konwertowania liczby całkowitej bez znaku na liczbę całkowitą o większym rozmiarze wartość jest rozszerzona o zero. Podczas konwertowania na liczbę całkowitą o mniejszym rozmiarze bity o dużej kolejności są obcinane. Wynik jest interpretowany przy użyciu typu wyniku, jak pokazano w tym przykładzie.

unsigned k = 65533;
short j;

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

Jeśli podczas konwertowania liczby całkowitej bez znaku na typ zmiennoprzecinkowy oryginalna wartość nie może być reprezentowana dokładnie w typie wyniku, wynik jest kolejną wyższą lub niższą wartością reprezentowaną przez wartość.

Zobacz Storage podstawowych typów, aby uzyskać informacje o rozmiarach typów całkowitoprzecinkowych i zmiennoprzecinkowych.

Specyficzne dla firmy Microsoft

W kompilatorze firmy Microsoft unsigned (lub unsigned int ) i są unsigned long odrębnymi, ale równoważnymi typami. Konwersja unsigned int wartości jest kontynuowana w taki sam sposób jak konwersja unsigned long wartości .

END Microsoft Specific

W poniższej tabeli podsumowano konwersje z niepodpisanych typów całkowitoapłatnych.

Tabela konwersji z niepodpisanych typów całkowitociepłowych

Źródło Działanie Metoda
unsigned char char Zachowaj wzorzec bitowy; bit wysokiego poziomu staje się bitem znaku
unsigned char short Zerowy zakres
unsigned char long Zerowy zakres
unsigned char long long Zerowy zakres
unsigned char unsigned short Zerowy zakres
unsigned char unsigned long Zerowy zakres
unsigned char unsigned long long Zerowy zakres
unsigned char float Konwertowanie long na ; konwertowanie long na float
unsigned char double Konwertowanie long na ; konwertowanie long na double
unsigned char long double Konwertowanie long na ; konwertowanie long na double
unsigned short char Zachowywanie bajtów o niskiej kolejności
unsigned short short Zachowaj wzorzec bitowy; bit wysokiego poziomu staje się bitem znaku
unsigned short long Zerowy zakres
unsigned short long long Zerowy zakres
unsigned short unsigned char Zachowywanie bajtów o niskiej kolejności
unsigned short unsigned long Zerowy zakres
unsigned short unsigned long long Zerowy zakres
unsigned short float Konwertowanie long na ; konwertowanie long na float
unsigned short double Konwertowanie long na ; konwertowanie long na double
unsigned short long double Konwertowanie long na ; konwertowanie long na double
unsigned long char Zachowywanie bajtów o niskiej kolejności
unsigned long short Zachowywanie wyrazów w niskiej kolejności
unsigned long long Zachowaj wzorzec bitowy; bit wysokiego poziomu staje się bitem znaku
unsigned long long long Zerowy zakres
unsigned long unsigned char Zachowywanie bajtów o niskiej kolejności
unsigned long unsigned short Zachowywanie wyrazów w niskiej kolejności
unsigned long unsigned long long Zerowy zakres
unsigned long float Konwertowanie long na ; konwertowanie long na float
unsigned long double Przekonwertuj bezpośrednio na double
unsigned long long double Konwertowanie long na ; konwertowanie long na double
unsigned long long char Zachowywanie bajtów o niskiej kolejności
unsigned long long short Zachowywanie wyrazów w niskiej kolejności
unsigned long long long Zachowywanie wartości o niskiej kolejności
unsigned long long long long Zachowaj wzorzec bitowy; bit wysokiego poziomu staje się bitem znaku
unsigned long long unsigned char Zachowywanie bajtów o niskiej kolejności
unsigned long long unsigned short Zachowywanie wyrazów w niskiej kolejności
unsigned long long unsigned long Zachowywanie wartości o niskiej kolejności
unsigned long long float Konwertowanie long na ; konwertowanie long na float
unsigned long long double Przekonwertuj bezpośrednio na double
unsigned long long long double Konwertowanie long na ; konwertowanie long na double

Zobacz też

Konwersje przypisań