Hola de nuevo!
Tengo una pequeña duda...
en un Pentium III de Intel, bajo Linux y compilando con gcc hice el siguiente cálculo:
87x87x87x87x87 y lo metí en una variable de tipo
unsigned long int.
Al mostrarla por pantalla me daba un resultado mayor que 6.000 millones, pero
resulta que el resultado correcto es 4.984.209.207.
Supongo que se debe a que una variable de ese tipo tiene 32 bits de tamaño (o sea 4 bytes) y, por lo tanto, su rango va de 0 a 4.294.967.295. Es decir, la operación se sale del rango.
Entonces ¿cómo puedo calcular esa operación? ¿Tengo que utilizar a la fuerza una variable de tipo
double o
long double? El caso es que necesito que la variable sea entera, puesto que luego quiero calcular su módulo...
¿Alguien sabría cómo hacerlo o la forma apropiada de resolver el cálculo?
Muchas gracias de antemano.
Saludos.