asignar un int un numero mayor de 150 cifras!!!

luigie
15 de Noviembre del 2007
nesecito elevar 2^n, donde n puede ser:
n=135468743516354654132132163546543213.....123312137
o cualquier cantidad de cifras, ya he probadon con:

long long int n;
y la maxima potencia pude ser 60 bits
2^60, y nesecito una cantidad de cifras mayor.

erenrela
15 de Noviembre del 2007
tu problema es que estas trabajando con enteros. Por mas que hagas long int no te es suficiente. lo que debes hacer es utilizar el almacenamiento en coma flotante que te permite tener cifras mucho mayores. Ej: 1000000000000000000000=10^21. 10^21 es mucho mas corto de escribir y asi lo hace nternamente la computadora pero para ello has de usar el tipo float. este tipo no solo para numeros con decimales. lo de float no viene de decimal sino de representacion en coma flotante

erenrela
15 de Noviembre del 2007
Me quedo decirte que con la representacion en coma flotante obtienes un rango mucho mayor pero a costa de medor precision. En tu caso usa 'double' que es un float mas grande. El rango de valores que puedes obtener es de 2.22507385850721e-308 a 1.79769313486231e+308.

Nacho
15 de Noviembre del 2007
Cierto, no puede usar float. Ni siquiera doble. La única forma fiable de trabajar con números de longitud arbitraria es creándose su propia rutina de multiplicar números grandes, usando un array de caracteres para almacenarlos.