Oi Jorge,
 
também já tentei fazer isto e meu código foi o seguinte:
 
public byte[] intToBytes(int j)
{
    byte[] bytes = new byte[4];
    int i;

    for(i=0; i<4; i++)
    {
        bytes[i] = (byte)( (j >>> ((4 - i - 1)*8) ) & 0xFF );
    }

    return bytes;
}

Porém, o último byte estava ficando com um valor errado. Se eu atribuisse este valor para uma variável int, então, ela recebia o valor correto. Acho que o problema é a perda de precisão na conversão para byte. Se você descobrir o erro, me informe.
 
O teste que fiz foi o seguinte:
 
tentei transformar o número 1000 e o resultado foi o seguinte
        (b0 = 0, b1 = 0, b2 = 3, b4 = -24), o que resultava em 744;
Porém, se utiliza-se um int para armazenar o último valor o resultado era:
        (b0 = 0, b1= 0, b2 = 3, b4 = 232), o que resultava em 1000;
 
 
 
 

Responder a