Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 1 mensaje ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Jue Ago 05, 2004 11:00 pm
Mensajes: 15

Nota Publicado: Mié Mar 08, 2006 7:13 am 
Arriba  
Estoy haciendo un programa en java para una asignatura de criptografia de la universidad. Necesito una senzillísima función que me concatene 4 bytes distintos para formar un entero de 32 bits. Les pego la función.
Código:
public static concatena int (byte a,b,c,d)
{
return (a<<24) | (b<<16) | (c<<8) | d;
}


Sorprendentemente, no funciona bien para los valors a=0x61, b=0x62, c=0x63, d=0x80, ya que me retorna el entero 0xFFFFFF80 (????!!!).
Pero lo mas sorprendente es que si canvio la funcion así:
Código:
public static concatena int (byte a,b,c,d)
{
return (a<<24) | (b<<16) | (c<<8) | (d<<1);
}

Y la llamo con a=ox61, b=0x62, c=0x63, d=0x40 entonces SI que me devuelve el resultado esperado, que es logicamente 0x61626380.

¡¡¡¡Pero aun hay más !!!! Retoco otra vez la funcion original.

Código:
public static concatena int (byte a,b,c,d)
{
return (a<<24) | (b<<16) | (c<<8) | (d<<0);
}

Como veran, es exactamente la misma que la original, ya que dejar d tal como estava o hacer un ShiftLeft de 0 bits a d es lo mismo. Pues si esperan obtener el mismo resultado que antes, van equivocados ! Ahora lo que me devuelve la funcion és 0xFFFFFF00.

¿Es esto una nueva feature (dile bug, dile feature....)?¿Me oblidado de las lecciones de primero de carrera y ya no se como funcionan los shifts i las or?¿Mi gentoo se ha vuelto tan lista que decide ella sola las operaciones que hará sin tener en cuenta el código que ejecuta? ¿Ganará el Barça la Copa de Europa por fin (otra vez... que serian 2 ya)? ¿Estaría mal la ensaïmada que me comí para desayunar?

Como ven empiezo a desvariar, necesito ayuda.

 Perfil  
Mostrar mensajes previos:  Ordenar por  
 [ 1 mensaje ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO