Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problemas con unsigned longs

Estas en el tema de Problemas con unsigned longs en el foro de C/C++ en Foros del Web. hola! bueno esto que me pasa es muy raro... cuando voy a compilar (con Dev c++ en su ultima version) obtengo este warning y no ...
  #1 (permalink)  
Antiguo 28/09/2006, 11:14
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 19 años, 6 meses
Puntos: 0
Problemas con unsigned longs

hola!

bueno esto que me pasa es muy raro...

cuando voy a compilar (con Dev c++ en su ultima version) obtengo este warning y no me deja compilar:

[Warning] this decimal constant is unsigned only in ISO C90

polinomio=2702280283;

esa es una asignacion por ejemplo.. segun investigue los unsigned long soportan hasta 4000000000 por lo que ese valor deberia funcionar sin problemas.....

que puedo hacer??

gracias!
  #2 (permalink)  
Antiguo 28/09/2006, 12:02
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
intenta:

polinomio=2702280283ul;
ó
polinomio=2702280283UL;

saludos.
  #3 (permalink)  
Antiguo 28/09/2006, 14:16
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por tksko Ver Mensaje
los unsigned long soportan hasta 4000000000
Sí, pero el problema es que no has indicado que sea unsigned, como te dice el compilador.

En el estándar C90, sería un signed, por lo que no te cabe más de 2 mil millones, es decir, que te pasas por poco.

Usa lo que te ha indicado Nivel7, o (unsigned long)2123123123
  #4 (permalink)  
Antiguo 28/09/2006, 16:15
 
Fecha de Ingreso: octubre-2004
Mensajes: 107
Antigüedad: 19 años, 6 meses
Puntos: 0
si funciona con el UL!
muchas gracias

me podrian explicar que es eso del UL? porque tenemos que defender el proyecto oralmente y seguramente nos van a preguntar eso del UL y se lo que es.

la variable polinomio era un unsigned int de todas formas.... sigo sin entender porque falla sin el UL.

salu2!
  #5 (permalink)  
Antiguo 28/09/2006, 16:20
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 2 meses
Puntos: 1
Cita:
Iniciado por tksko Ver Mensaje
si funciona con el UL!
muchas gracias

me podrian explicar que es eso del UL? porque tenemos que defender el proyecto oralmente y seguramente nos van a preguntar eso del UL y se lo que es.

la variable polinomio era un unsigned int de todas formas.... sigo sin entender porque falla sin el UL.

salu2!
UL-->Unsigned long, igualmente es mas comun(por lo menos para mi) ponerlo delante de la variable como te decia MaxExtreme (unsigned long)2123123123.

Pero bueno lo más logico seria declararlo de un inicio...probaste cambiar el unsigned int a unsigned long en la declaración?

Un saludo.
  #6 (permalink)  
Antiguo 29/09/2006, 00:17
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
El problema no es con su variable decalrada, sino con la constante.

las constantes literales en C/C++, son con signo.

portanto si usas una constante litereal que rebase las posibilidades de su tipo con signo te marcara error.

a menos que indiques explicitamente que es sin signo.
en este caso: UL(unsigned long).

es probable que el casting no te marque error, pero no creo que sea lo mejor.
(el compilador te seguira indicando un warning).

saludos.
  #7 (permalink)  
Antiguo 29/09/2006, 06:55
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por tksko Ver Mensaje
si funciona con el UL!
muchas gracias

me podrian explicar que es eso del UL? porque tenemos que defender el proyecto oralmente y seguramente nos van a preguntar eso del UL y se lo que es.

la variable polinomio era un unsigned int de todas formas.... sigo sin entender porque falla sin el UL.

salu2!
Te lo había explicado yo. ¬¬
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:44.