Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Andrsz en 28 Diciembre 2013, 21:32 pm



Título: Como arreglar preoblemas de numeros grandes en C++
Publicado por: Andrsz en 28 Diciembre 2013, 21:32 pm
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..


Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: amchacon en 28 Diciembre 2013, 21:56 pm
¿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.


Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: 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.


Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: amchacon en 28 Diciembre 2013, 22:04 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


Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: leosansan en 28 Diciembre 2013, 22:35 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
  1.    a=9223372036854775807
  2.    total = 5761455
  3.    Process returned 0 (0x0)   execution time : 6.535 s
  4.    Press any key to continue.
  5.  


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:



Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: ivancea96 en 28 Diciembre 2013, 22:54 pm
Como te gusta reinventar la rueda ;D

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


Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: leosansan en 28 Diciembre 2013, 23:01 pm
Esque hay una clase ya creada para numeros grandes???
Una clase no sé, pero librerías sí, por ejemplo GNU MP (https://gmplib.org/manual/)

Saluditos! ..... !!!!        
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: amchacon en 29 Diciembre 2013, 17:18 pm
Esque hay una clase ya creada para numeros grandes???
La he puesto en mi mensaje :silbar:


Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: ivancea96 en 29 Diciembre 2013, 17:28 pm
La he puesto en mi mensaje :silbar:

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


Título: Re: Como arreglar preoblemas de numeros grandes en C++
Publicado por: leosansan en 1 Enero 2014, 01:11 am

Más comentaros en números grandes. (http://foro.elhacker.net/programacion_cc/problema_de_programacion_con_numeros-t405708.0.html)

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


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


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)