Como arreglar preoblemas de numeros grandes en C++

Iniciado por Andrsz, 28 Diciembre 2013, 21:32 PM

0 Miembros y 1 Visitante están viendo este tema.

Andrsz

Les queria explicar que tengo un problema con el compilador ya q no me acepta numeros grandes...
Veran estoy usando DevC++ y yo intento ingresar por ej. este numero "9223372036854775808" y la cosa es q no me la acepta xq siempre me aparece este y mensaje y otros seguidos despues:
main.cpp In function `int main()':
8 - [Warning] this decimal constant is unsigned only in ISO C90
8 main.cpp integer constant is too large for "long" type
8 main.cpp integer constant is too large for "long" type
8 main.cpp integer constant is too large for "long" type
8 main.cpp integer constant is too large for "long" type
...... // y sigue aun todavia xq lo q estoy usando es un vector con numeros grandes..

Ya me fije en cambiarla por "unsigned long long" y nada, me sige apareciendo eso y no me lo compila, tambien con "__int64" y tampoco da resultados ...
Alguien me dice como hago para que me acepte al vector q ingrese con todos esos numeros, osea q a los numeros q contiene el vector me los acepte a los que tienen 20 digitos..
Ayudenmen q es un proyrcto q tengo q hacer..

amchacon

¿Intentas guardar un número con 19 digitos? Eso no te cabe en ninguna variable.

Puedes guardarlo en un cadena de texto o usar ya clases especializadas:
https://mattmccutchen.net/bigint/

No esque esa clase "haga magia", estas clases guardan los números en una cadena de texto (o un array booleano) y los "reinterpetra" sobre la marcha para operar.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

ivancea96

Mi solución es: Hazte una clase propia, para guardar los números grandes. No se me ocurre otra forma.

amchacon

Cita de: ivancea96 en 28 Diciembre 2013, 21:57 PM
Mi solución es: Hazte una clase propia, para guardar los números grandes. No se me ocurre otra forma.
Como te gusta reinventar la rueda ;D
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

Cita de: amchacon en 28 Diciembre 2013, 21:56 PM
¿Intentas guardar un número con 19 digitos? Eso no te cabe en ninguna variable.
..................................................

En realidad no tienes problema usando long long int, siempre que no sobrepase el conjunto de operaciones entre los números el límite 9223372036854775807:


Código (cpp) [Seleccionar]

    a=9223372036854775807
    total = 5761455
    Process returned 0 (0x0)   execution time : 6.535 s
    Press any key to continue.



El segundo número es de otra operación.... pero no sobrepases ese valor o tendrás que usar librerías externas.

¡¡¡¡ Saluditos! ..... !!!!

:rolleyes: ;) ;) ;) :rolleyes:


ivancea96

Cita de: amchacon en 28 Diciembre 2013, 22:04 PM
Como te gusta reinventar la rueda ;D

Esque hay una clase ya creada para numeros grandes???

leosansan

Cita de: ivancea96 en 28 Diciembre 2013, 22:54 PM
Esque hay una clase ya creada para numeros grandes???
Una clase no sé, pero librerías sí, por ejemplo GNU MP

Saluditos! ..... !!!!        

amchacon

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

ivancea96

Cita de: amchacon en 29 Diciembre 2013, 17:18 PM
La he puesto en mi mensaje :silbar:

Ah, pero yo me refería en la biblioteca estándar xD

leosansan


Más comentaros en números grandes.

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!