Red de conocimientos sobre prescripción popular - Remedios caseros - Constante entera larga en lenguaje C, ¿qué es una constante entera larga?

Constante entera larga en lenguaje C, ¿qué es una constante entera larga?

El número entero largo es relativo al número entero básico. Generalmente, ocupa el doble del espacio de almacenamiento que el número entero básico. El tamaño exacto varía según los diferentes compiladores. Si su espacio de almacenamiento es k bytes, el rango de números almacenables es -2^(8k-1)~ 2^(8k-1)-1.

Las variables enteras se pueden dividir en las siguientes categorías:

1. Tipo básico

El especificador de tipo es int, según la longitud de palabra interna de la computadora. y la versión del compilador, que puede ocupar 2 o 4 bytes en memoria (generalmente en máquinas de 16 bits y máquinas de 32 bits respectivamente), y su valor es una constante entera básica.

2. Entero corto

El especificador de tipo es short int o short, que ocupa 2 bytes en la memoria y su valor es una constante entera corta.

3. Tipo entero largo

El especificador de tipo es long int o long, que ocupa 4 bytes en la memoria y su valor es una constante entera larga.

Tipo entero de 4,64 bits (no estándar ANSI)

El especificador de tipo es __int64, long long int o long long, que ocupa 8 bytes en memoria y su valor es 64 -bit constante entera.

5. Tipo sin firmar

El especificador de tipo no está firmado. Se puede usar solo para representar int sin signo, o como prefijo, los cuales representan números enteros sin signo, es decir, variables enteras que siempre son no negativas. El rango de datos mayor que 0 se expande a aproximadamente el doble del tamaño original. Varios tipos sin signo ocupan la misma cantidad de bytes de espacio de memoria que los tipos con signo correspondientes. Sin embargo, dado que se omite el bit de signo, no se pueden representar números negativos. La siguiente tabla enumera la cantidad de bytes de memoria asignados para varios tipos de enteros en Turbo C y el rango de representación del número.

Sufijos para números enteros

Puedes utilizar el sufijo "L" o "l" para representar números enteros largos. Por ejemplo:

Entero largo decimal: 158L (el decimal es 158), 358000L (el decimal es 358000);

Entero largo octal: 012L (el decimal es 10), 077L (63 en decimal), 0200000L (65536 en decimal);

Entero largo hexadecimal: 0X15L (21 en decimal), 0XA5L (165 en decimal), 0X10000L (65536 en decimal).

No existe diferencia numérica entre el entero largo 158L y el entero básico 158. Pero para 158L, debido a que es un número entero largo, el sistema de compilación C le asignará 4 bytes de espacio de almacenamiento. Para 158, debido a que es un tipo entero básico, solo se asignan 2 bytes de espacio de almacenamiento. Por lo tanto, se debe prestar atención a la operación y al formato de salida para evitar errores.

Los números sin signo también se pueden representar mediante sufijos. El sufijo de los números enteros sin signo es "U" o "u". Por ejemplo: 358u, 0x38Au, 235Lu son números sin signo.

Los prefijos y sufijos se pueden utilizar al mismo tiempo para representar varios tipos de números. Por ejemplo, 0XA5Lu representa el entero largo hexadecimal sin signo A5, que es 165 en decimal.