Foro de elhacker.net

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



Título: Problema de Programacion con numeros
Publicado por: Andrsz en 28 Diciembre 2013, 20:38 pm
Hola, soy nuevo en este foro y 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 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: Problema de Programacion con numeros
Publicado por: engel lex en 29 Diciembre 2013, 02:09 am
podrías usar Float y Double

aquí una información simple con los rangos de las variables numéricas

http://www.zator.com/Cpp/E2_2_4.htm (http://www.zator.com/Cpp/E2_2_4.htm)


Título: Re: Problema de Programacion con numeros
Publicado por: Darioo en 30 Diciembre 2013, 18:20 pm
Deberías mostrarnos tu código, quizás podamos encontrar el error.


Título: Re: Problema de Programacion con numeros
Publicado por: leosansan en 30 Diciembre 2013, 19:53 pm
Hola, soy nuevo en este foro y 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 este numero "9223372036854775808" y la cosa es q no me la acepta
..............................

Justito te  has pasado en una unidad porque el máximo número representable como entero, y declarado como long lon int en lugar de int, es 9223372036854775807 que no es poco. Eso sí, para imprimirlos tienes que usar el formato %lld

Otra opción aún mejor, si son sin signo, es usar unsigned lon long int cuyo limite supera lo que pides:   18446744073709551615 , siendo el formato en el printf " %llu ".

.


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


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


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