Compartir a través de


Conversiones de tipos enteros con signo

Cuando un entero se convierte en un entero sin signo con igual o el mayor tamaño y el valor de entero con signo no es negativo, el valor no cambia.La conversión se realiza signo-extendiendose el entero con signo.Un entero se convierte en un entero menor truncando los bits de alto nivel.El resultado se interpreta como un valor sin signo, como se muestra en este ejemplo.

int i = -3;
unsigned short u;

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

Se pierda información cuando un entero se convierte en un valor flotante, salvo que alguna precisión puede ser perderá cuando un valor de int largo o de int unsigned long se convierte en un valor de Hacer flotante .

La tabla siguiente se resumen las conversiones de tipos enteros con signo.Esta tabla se supone que está firmado el tipo de char de forma predeterminada.Si usa una opción de tiempo de compilación de cambiar el valor predeterminado para char tipo a sin firmar, las conversiones incluidas en la tabla de Conversiones de tipos enteros de Unsigned para el tipo de unsigned char aplican en lugar de las conversiones en la tabla siguiente, conversiones de tipos enteros con signo.

Conversiones de tipos enteros con signo

From

Para

Método

char1

short

Signo-extiendase

char

long

Signo-extiendase

char

unsigned char

Modelo de preserve; el bit de alto nivel pierde la función como bit de signo

char

unsigned short

Signo-extiendase a Corto; convierte Corto a unsigned short

char

unsigned long

Signo-extiendase a Más; convierte Más a unsigned long

char

float

Signo-extiendase a Más; convierte Más a Hacer flotante

char

double

Signo-extiendase a Más; convierte Más a Doble

char

long double

Signo-extiendase a Más; convierte Más a Doble

short

char

Byte de orden inferior de preserve

short

long

Signo-extiendase

short

unsigned char

Byte de orden inferior de preserve

short

unsigned short

Configuración de bits de preserve; el bit de alto nivel pierde la función como bit de signo

short

unsigned long

Signo-extiendase a Más; convierte Más a unsigned long

short

float

Signo-extiendase a Más; convierte Más a Hacer flotante

short

double

Signo-extiendase a Más; convierte Más a Doble

short

long double

Signo-extiendase a Más; convierte Más a Doble

long

char

Byte de orden inferior de preserve

long

short

Palabra de orden inferior de preserve

long

unsigned char

Byte de orden inferior de preserve

long

unsigned short

Palabra de orden inferior de preserve

long

unsigned long

Configuración de bits de preserve; el bit de alto nivel pierde la función como bit de signo

long

float

Representa como Hacer flotante.Si Más no se puede representar correcta, se pierde alguna precisión.

long

double

Representa como Doble.Si Más no se puede representar exactamente como Doble, se pierde alguna precisión.

long

long double

Representa como Doble.Si Más no se puede representar exactamente como Doble, se pierde alguna precisión.

1.Todas las entradas de char suponen que está firmado el tipo de char de forma predeterminada.

Específicos de Microsoft

Para Microsoft C de 32 bits, un entero es equivalente a Más.La conversión de un valor de int continúa igual que para Más.

Específico de Microsoft de FINAL

Vea también

Conceptos

Conversiones de asignación