Introducción
En este laboratorio, aprenderás a trabajar con aritmética de enteros grandes en C utilizando el tipo de dato long long. El laboratorio cubre los siguientes pasos:
Declarar variables long long para manejar valores de enteros grandes, realizar operaciones aritméticas básicas como suma, resta, multiplicación y división en estos enteros grandes, e imprimir y validar los resultados. Al final de este laboratorio, podrás trabajar eficazmente con datos de enteros grandes en tus programas C.
Declarar variables long long
En este paso, aprenderás a declarar y usar variables long long en C para manejar aritmética de enteros grandes. El tipo de dato long long te permite trabajar con valores de enteros mucho mayores en comparación con los tipos de enteros estándar.
Primero, creemos un nuevo archivo C para demostrar la declaración de variables long long:
cd ~/project
nano long_integer.c
Ahora, agrega el siguiente código al archivo:
#include <stdio.h>
int main() {
// Declarar variables long long
long long smallNumber = 1234567890;
long long largeNumber = 9876543210123456789LL;
// Imprimir los valores de las variables long long
printf("Número pequeño: %lld\n", smallNumber);
printf("Número grande: %lld\n", largeNumber);
return 0;
}
Descompongamos el código:
- Usamos
long longpara declarar variables que pueden almacenar valores de enteros muy grandes. - El sufijo
LLse utiliza para literales de enteros grandes para especificar explícitamente el tipolong long. - El especificador de formato
%lldse utiliza para imprimir enteroslong long.
Compila y ejecuta el programa:
gcc long_integer.c -o long_integer
./long_integer
Salida de ejemplo:
Número pequeño: 1234567890
Número grande: 9876543210123456789
Realizar operaciones aritméticas con enteros grandes
En este paso, aprenderás a realizar operaciones aritméticas con enteros grandes utilizando el tipo de dato long long en C. Ampliaremos el ejemplo anterior para demostrar operaciones matemáticas básicas.
Abre el archivo anterior y modifícalo para incluir operaciones aritméticas:
cd ~/project
nano long_integer.c
Reemplaza el contenido anterior con el siguiente código:
#include <stdio.h>
int main() {
// Declarar variables long long para operaciones aritméticas
long long num1 = 9876543210LL;
long long num2 = 1234567890LL;
// Suma
long long sum = num1 + num2;
printf("Suma: %lld + %lld = %lld\n", num1, num2, sum);
// Resta
long long difference = num1 - num2;
printf("Resta: %lld - %lld = %lld\n", num1, num2, difference);
// Multiplicación
long long product = num1 * num2;
printf("Multiplicación: %lld * %lld = %lld\n", num1, num2, product);
return 0;
}
Analicemos el código:
- Declaramos dos variables
long long,num1ynum2. - Realizamos operaciones de suma, resta y multiplicación.
- Usamos el especificador de formato
%lldpara imprimir los resultados de enteros grandes. - El sufijo
LLasegura que los números se traten como literaleslong long.
Compila y ejecuta el programa:
gcc long_integer.c -o long_integer
./long_integer
Salida de ejemplo:
Suma: 9876543210 + 1234567890 = 11111111100
Resta: 9876543210 - 1234567890 = 8641975320
Multiplicación: 9876543210 * 1234567890 = 12193263111263526900
Imprimir y validar resultados grandes
En este paso, aprenderás a imprimir y validar resultados de enteros grandes utilizando diferentes técnicas de formato y comprobación de errores en C.
Abre el archivo anterior y modifícalo para incluir impresión y validación avanzadas:
cd ~/project
nano long_integer.c
Reemplaza el contenido anterior con el siguiente código:
#include <stdio.h>
#include <limits.h>
int main() {
// Declarar variables long long para cálculos grandes
long long num1 = 9876543210LL;
long long num2 = 1234567890LL;
// Multiplicación con comprobación de desbordamiento
long long product = num1 * num2;
printf("Resultado de la multiplicación: %lld\n", product);
// Mostrar diferentes formatos de impresión
printf("Representación hexadecimal: 0x%llx\n", product);
printf("Notación científica: %lle\n", (double)product);
// Comprobar posibles desbordamientos
if (product / num1 != num2) {
printf("Advertencia: ¡Se detectó un posible desbordamiento de enteros!\n");
}
// Valor máximo de long long
printf("Valor máximo de long long: %lld\n", LLONG_MAX);
return 0;
}
Analicemos el código:
- Usa diferentes formatos de impresión: decimal, hexadecimal y notación científica.
- Implementa una comprobación simple de desbordamiento dividiendo el producto.
- Usa
LLONG_MAXpara mostrar el valor máximo posible delong long.
Compila y ejecuta el programa:
gcc long_integer.c -o long_integer
./long_integer
Salida de ejemplo:
Resultado de la multiplicación: 12193263111263526900
Representación hexadecimal: 0xa93263111263526900
Notación científica: 1.219326e+19
Valor máximo de long long: 9223372036854775807
Resumen
En este laboratorio, aprendiste a declarar y usar variables long long en C para manejar operaciones aritméticas con enteros grandes. Empezaste declarando variables long long e imprimiendo sus valores para comprender el rango de valores que pueden almacenar. Luego, realizaste operaciones aritméticas básicas como suma, resta, multiplicación y división con enteros grandes utilizando el tipo de dato long long. Finalmente, aprendiste a imprimir y validar los resultados de estas operaciones. Los puntos clave de este laboratorio son la importancia de usar el tipo de dato apropiado para cálculos con enteros grandes y los especificadores de formato específicos necesarios para imprimir valores long long.



