Udostępnij za pośrednictwem


Konwersje typów niepodpisanego Całka

Liczba całkowita bez znaku jest konwertowany krótszy całkowitą niepodpisany lub podpisany przez obcinanie znaczących bitów lub już niepodpisany lub podpisany całkowitą liczbą rozszerzając zera (zobacz Konwersje typów integralną niepodpisane tabeli).

Gdy wartość z typem całkowitym jest obniżany do liczba całkowita ze znakiem o mniejszym rozmiarze, lub liczba całkowita bez znaku jest konwertowana na jej odpowiednie liczba całkowita ze znakiem, wartość jest bez zmian, jeżeli mogą być reprezentowane w nowy typ.Jednakże wartość reprezentuje zmian, jeżeli jest ustawiony bit znaku, jak w poniższym przykładzie.

int j;
unsigned short k = 65533;

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

Jeśli nie można przedstawić, wynik jest zdefiniowane w implementacji.Zobacz Konwersje typu rzutowania informacji na temat obsługi kompilator Microsoft C obniżania liczb całkowitych.Tym samym zachowanie wyniki z liczby całkowitej konwersji lub typu Rzutowanie wartości całkowitej.

Niepodpisane wartości są konwertowane w sposób, który zachowuje ich wartość i nie jest ona reprezentować bezpośrednio w C.Jedynym wyjątkiem jest konwersja z unsigned long do pływaka, która traci co najwyżej niskie bity.W przeciwnym razie wartość jest zachowywany, podpisem lub bez.Gdy wartość integralną typu jest konwertowany na przestawny, a wartość jest spoza zakresu reprezentować, to wynik jest niezdefiniowany.(Zobacz Magazyn podstawowe typy dla informacje na temat zakresu typów integralną i zmiennoprzecinkowych.)

W następującej tabeli podsumowano konwersje typów integralną niepodpisane.

Konwersje typów niepodpisanego Całka

Od

Do

Metoda

unsigned char

char

Zachowaj wzorzec bitowy; bit znaczących staje się znakiem bit

unsigned char

krótkie

Rozszerzenie zero

unsigned char

długie

Rozszerzenie zero

unsigned char

krótki niepodpisane

Rozszerzenie zero

unsigned char

unsigned long

Rozszerzenie zero

unsigned char

Pływak

Konwertuj na long; Konwertuj long do pływaka

unsigned char

podwójne

Konwertuj na long; Konwertuj long do podwójne

unsigned char

long double

Konwertuj na long; Konwertuj long do podwójne

krótki niepodpisane

char

Zachowaj mniej znaczącym bajcie

krótki niepodpisane

krótkie

Zachowaj wzorzec bitowy; bit znaczących staje się znakiem bit

krótki niepodpisane

długie

Rozszerzenie zero

krótki niepodpisane

unsigned char

Zachowaj mniej znaczącym bajcie

krótki niepodpisane

unsigned long

Rozszerzenie zero

krótki niepodpisane

Pływak

Konwertuj na long; Konwertuj long do pływaka

krótki niepodpisane

podwójne

Konwertuj na long; Konwertuj long do podwójne

krótki niepodpisane

long double

Konwertuj na long; Konwertuj long do podwójne

unsigned long

char

Zachowaj mniej znaczącym bajcie

unsigned long

krótkie

Zachowaj word low zamówienie

unsigned long

długie

Zachowaj wzorzec bitowy; bit znaczących staje się znakiem bit

unsigned long

unsigned char

Zachowaj mniej znaczącym bajcie

unsigned long

krótki niepodpisane

Zachowaj word low zamówienie

unsigned long

Pływak

Konwertuj na long; Konwertuj long do pływaka

unsigned long

podwójne

Konwertuj bezpośrednio do podwójne

unsigned long

long double

Konwertuj na long; Konwertuj long do podwójne

Programu Microsoft

Dla Microsoft 32-bitowy kompilator C unsigned int typu jest równoważne z unsigned long typu.Konwersja z unsigned int wartość wpływy w taki sam sposób, jak konwersja z unsigned long.Konwersja z unsigned long wartości do pływaka nie są dokładne, jeśli wartość konwertowany jest większe niż maksymalne dodatnie podpisane long wartość.

KONIEC Microsoft szczególne

Zobacz też

Koncepcje

Konwersje przypisania