Conversiones de tipos enteros de Unsigned

Un entero sin signo es realiza la conversión en un entero sin signo o con signo más corto truncando los bits de alto nivel, o un entero sin signo o con signo más largo cero-extendiendose (vea la tabla de Conversiones de tipos enteros de Unsigned ).

Cuando el valor con el tipo entero se reduce en un entero con más pequeño, o un entero sin signo se convierte en su entero correspondiente, el valor no cambia si se puede representar en el nuevo tipo.sin embargo, el valor representa cambios si se establece el bit de signo, como en el ejemplo siguiente.

int j;
unsigned short k = 65533;

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

Si no se puede representar, el resultado es implementación-definido.Vea Conversiones de la conversión de tipos para obtener información sobre el control de Microsoft C de entrega de intervalo de enteros.El mismo comportamiento es el resultado de la conversión de enteros o de tipo convertir integer.

Los valores sin signo se convierten de manera que se conserve el valor y no son representables directamente en C.La única excepción es una conversión de unsigned long a Hacer flotante, se pierden a lo más los bites de peso inferior.De lo contrario, el valor es retenido, con signo o sin signo.Cuando un valor de tipo entero se convierte a la flotante, y el valor está fuera del intervalo puede representar, el resultado es indefinido.(Vea almacenamiento de tipos básicos para obtener información sobre el intervalo para tipos enteros y de punto flotante).

La tabla siguiente se resumen las conversiones de tipos enteros sin signo.

Conversiones de tipos enteros de Unsigned

From

Para

Método

unsigned char

char

Configuración de bits de preserve; el bit de alto nivel se convierte en bit de signo

unsigned char

short

Cero-extiendase

unsigned char

long

Cero-extiendase

unsigned char

unsigned short

Cero-extiendase

unsigned char

unsigned long

Cero-extiendase

unsigned char

float

Convierte en Más; convierte Más a Hacer flotante

unsigned char

double

Convierte en Más; convierte Más a Doble

unsigned char

long double

Convierte en Más; convierte Más a Doble

unsigned short

char

Byte de orden inferior de preserve

unsigned short

short

Configuración de bits de preserve; el bit de alto nivel se convierte en bit de signo

unsigned short

long

Cero-extiendase

unsigned short

unsigned char

Byte de orden inferior de preserve

unsigned short

unsigned long

Cero-extiendase

unsigned short

float

Convierte en Más; convierte Más a Hacer flotante

unsigned short

double

Convierte en Más; convierte Más a Doble

unsigned short

long double

Convierte en Más; convierte Más a Doble

unsigned long

char

Byte de orden inferior de preserve

unsigned long

short

Palabra de orden inferior de preserve

unsigned long

long

Configuración de bits de preserve; el bit de alto nivel se convierte en bit de signo

unsigned long

unsigned char

Byte de orden inferior de preserve

unsigned long

unsigned short

Palabra de orden inferior de preserve

unsigned long

float

Convierte en Más; convierte Más a Hacer flotante

unsigned long

double

Convertir directamente a Doble

unsigned long

long double

Convierte en Más; convierte Más a Doble

Específicos de Microsoft

Para Microsoft C de 32 bits, el tipo de unsigned int es equivalente al tipo de unsigned long .la conversión de un valor de unsigned int continúa igual que la conversión de unsigned long.Las conversiones de los valores de unsigned long a Hacer flotante no son precisas si el valor que se está convirtiendo es mayor que el valor signed positivo máximo de Más .

Específico de Microsoft de FINAL

Vea también

Conceptos

Conversiones de asignación