Foros del Web » Programación para mayores de 30 ;) » Java »

unsigned int en java?

Estas en el tema de unsigned int en java? en el foro de Java en Foros del Web. Tengo un caracter y necesito castearlo a unsigned int. Alguien sabe como hacer? castear a int es facil: por ejemplo (int)var_char, pero unsigned int no ...
  #1 (permalink)  
Antiguo 03/09/2008, 22:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
unsigned int en java?

Tengo un caracter y necesito castearlo a unsigned int. Alguien sabe como hacer?

castear a int es facil: por ejemplo (int)var_char, pero unsigned int no existe un tipo de variable asi en java, o si?

y ademas, cosas de las que casteo necesito que sean unsigned 16-bit int (hay otras alternativas tb?)

salu2

pd: para ser mas precisos estoy convirtiendo caracteres a numeros que son ips y puertos. el puerto tiene que ser un unsigned 16-bit int, y el IP obviamente debe ser un ip valido, (valido es de 0 a 256 no? xD), obviamente todo unsigned, bueno, eso.......
osea, tengo caracteres y 4 de ellos los convierto a los 4 numeritos de la ip, y otros 2 de ellos al puerto..... todo esto lo tengo que castear de forma que sea valido....

Última edición por razer; 03/09/2008 a las 22:34
  #2 (permalink)  
Antiguo 03/09/2008, 23:22
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: unsigned int en java?

Hola:

No hay unsigned en java. De todas formas, si lo hubiera el cast tampoco te garantiza que sea válido. El rango de los int es mucho mayor que 255 o el valor máximo de un puerto 65535. Debes hacer la comprobación con unos if. El unsigned se suele usar para obtener un rango de enteros más grande que el de los int a secas, no para garantizar que el número está dentro de un rango.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 04/09/2008, 03:52
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: unsigned int en java?

¿En lugar de obtener los numeros caracter a caracter, no sería más sencillo tratar cadenas enteras?

Conviertes los 4 grupos de numeros de la IP y el puerto (las cadenas) en enteros y compruebas los rangos, listo.

No hace falta unsigned int para eso, como comenta Chuidiang.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 04/09/2008, 10:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: unsigned int en java?

Es que no todas las ip que me dan son validas (ej: 0.81.32.45....) y justamente se supone que esos chars tienen ip validas :D
  #5 (permalink)  
Antiguo 04/09/2008, 11:51
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: unsigned int en java?

Cita:
Iniciado por GreenEyed Ver Mensaje
Conviertes los 4 grupos de numeros de la IP y el puerto (las cadenas) en enteros y compruebas los rangos, listo.
De comprobar los rangos no te va a librar nadie . Ni siquiera aunque hubiera unsigned int, ya que hay muchas combinaciones de "unsigned int" separados por puntos que no son direcciones IP correctas.

No entiendo cuando hablas de chars. 0 podria pasar por un caracter, pero 81 no, ni 32, ni 255, a no ser que lo conviertas a char, pero no veo razon para hacer eso.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #6 (permalink)  
Antiguo 04/09/2008, 13:39
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: unsigned int en java?

Hablo de chars porque tengo 4 caracteres que representan una ip. Cada caracter un numero de esa ip, entonces estaba casteando el char a int y obteniendo el numero de ese char....

lo que decia era, que supuestamente son ips validas, y algunas me dan con 0.81.42.. osea, cosas raras que no existen.
  #7 (permalink)  
Antiguo 05/09/2008, 00:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: unsigned int en java?

Cita:
Iniciado por razer Ver Mensaje
Hablo de chars porque tengo 4 caracteres que representan una ip. Cada caracter un numero de esa ip, entonces estaba casteando el char a int y obteniendo el numero de ese char...
Aha. Entonces, lo que decía antes es que... ¿No sería más facil coger el 0, 81, 42, como cadenas y pasarlos a un numero directamente, en vez de ir digito a digito?

Luego compruebas que cada número sea válido segun la posición en la que esté y ya está. No veo como te puede ayudar tratar los numeros dígito a dígito y convertirlos a char.

El validar que los grupos de numeros conforman una IP correcta lo tendrás que hacer sí o sí.
S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #8 (permalink)  
Antiguo 05/09/2008, 09:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: unsigned int en java?

Pero.. si lo tomo como cadena como se como se separan los numeros con los '.' ?
Puede haber numeros de 2 cifras, otros de 3..... osea, la validacion segun la posicion la puedo hacer como estoy haciendo ahora.

Lo que no entendi es agarrar todo junto, porque me quedaria un numero un tanto grande que representa una ip, pero como se las separaciones con los . ?

pd: ademas nose como pasar un string con caracteres raros a un numero, Integer.parse no funciona.

Última edición por razer; 05/09/2008 a las 10:39
  #9 (permalink)  
Antiguo 05/09/2008, 14:33
 
Fecha de Ingreso: agosto-2008
Mensajes: 19
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: unsigned int en java?

Prueba usando la Clase StringTokenIzer, esto te permite dividir una cadena en base a un delimitador, ya sea un punto, como, etc

Ejemplo:

public void separaCadena(){
String cadena = "10.7.11.124";
StringTokenizer nombre = new StringTokenizer(cadena, ".");
while(cadena.hasMoreTokens()){
String p1=nombre.nextToken();
String p2=nombre.nextToken();
String p3=nombre.nextToken();
String p4=nombre.nextToken();
}
}

Esto te separa el 10, 7, 11, 124 en base al delimitador que es el '.'
  #10 (permalink)  
Antiguo 05/09/2008, 14:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 19
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: unsigned int en java?

no se, derepente te ayuda un poco este link

http://mindprod.com/jgloss/unsigned.html

chekealo por siacaso
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 21:34.