pasar de int a byte[] y al reves

neu___
12 de Septiembre del 2009
Buenas

Por alguna extraña razon me han pedido que haga una funcion que dado un Int, me lo guarde en un array de bytes, y al reves, que dado 4 bytes, me devuelva el entero correspondiente.

No tengo ni idea de por donde empezar. ¿Alguna sugerencia?

Lucas
12 de Septiembre del 2009
Para pasar de un int a un byte[], puedes hacerlo asi
int n = 25;
byte b[] = new byte[4];
b[0] = (byte)(n & 0x000000ff);
b[1] = (byte)((n & 0x0000ff00) >> 8);
b[2] = (byte)((n & 0x00ff0000) >> 16);
b[3] = (byte)((n & 0xff000000) >> 24);

Para pasar de byte[] a int, te dejo que lo pienses, es parecido al caso anterior pero al reves

Diegoku
12 de Septiembre del 2009
Mejor así:
b[3] = (byte)(n & 0x000000ff);
b[2] = (byte)((n & 0x0000ff00) >> 8);
b[1] = (byte)((n & 0x00ff0000) >> 16);
b[0] = (byte)((n & 0xff000000) >> 24);
que si no luego da problemas la conversión hacia atrás

a
12 de Septiembre del 2009
facil de int a byte[]:
int n=34;
Byte bytes[];
bytes=new Byte[];
bytes[]=n.getBytes[];
y listo.