2008/4/24 Pablo Martín Viva <[EMAIL PROTECTED]>: > Si, bueno java no tiene tipos unsigned pero usar el tipo unsigned tiene > muchos problemitas
BWFT ? ... No veo el problema :) > si no los sabes usar y eso no te valida que el numero que Bueno, yo estoy excluyendo a los programadores nabos de la ecuacion, si no, no tiene sentido hablar de nada. si queres programar bien, necesitas 2 dedos de frente. > le pases como parametro a tu metodo o le asignes a tu atributo lo ignore. uint a; , dale, no es tan terrible :) ... y no, no ignora nada!, si le pasas -2, interpreta lo interpretara como un numero super grande, pero no lo va a ignorar. Y de ultima, siempre tedrias que tener un warning en algun lado que te avisa. > Toma por ejemplo C++ que SI tiene unsigned int y hace poco en un trabajo > practico de la facultad tuve un problema similar.... Pasale -Wall al compilador y te avisa : Warning, comparassion beetwen signed and unsinged (o aaaalgo asi :P), no es grave, despues de todo sos el programador, hacete cargo :) > Estaba usando una variable unsigned int y le asugnava una variable que tenia > 0 y le restaba uno (Sin darme cuenta que la variable estaba en 0 antes de > restarle 1) y por ende, la variable no pasba a tener -1 sino 2 elevado a la > 37 o algo similar que no es lo que yo queria.... Bueno, ahi tu problema era otro, no unsinged int. > Esta bien ese es un bug mio, y un error conceptual mio, pero tener un tipo > de dato unsigned no hace que no te deje meter un valor negativo sino que te > acepte un valor negativo pero lo interpreta como positivo, que hay una gran No hay ningun error conceptual, esta bien hacer 0-1 = 2^32-1 ... es totalmetne razonable y natural en las PCs. Ahora, si nunca leiste minimamente como funciona una computadora, dificil que lo veas como natural :). El error yo lo veo mas por el lado del problema. Vos estabas restando, teniendo una condicion limite y no la verificabas, esperando que el lenguaje magicamente lo haga por vos. 0-1 = 0 ?, eso si no tendria sentido :) > diferencia, los tipos de datos se usan para interpretar un dato, los > conjuntos de bits pueden ser iguales pero representados en distintos En bajo nivel quizas, pasa eso, por cuestiones mas alla de la logica tal vez :). En lenguajes de alto nivel, no compilara, si lo hara, dependera del lenguaje / implementacion. Lo importante es que el unsigned int no tiene nada de malo :), a lo sumo el lenguaje lo tiene. > formatos se interpretan diferente, el tema que propuse yo con un getter / > setter y el valor negativo no es cuestion de definir la variable como > unsigned int, sino validar que si me llega un valor negativo, ignorarlo. Ignorar es a veces peor que aceptar un error. Una ingore es mas dificil de debbugear, que saber donde explota una aplicacion y tener un punto de partida. -- -- ¡Falta Uno! - http://www.falta-uno.com.ar/ Ricardo Markiewicz _______________________________________________ Lista de correo Programacion. [email protected] http://listas.fi.uba.ar/mailman/listinfo/programacion
