BitConverter em Java

3 respostas
sawp32

Pessoal, qual classe do Java que fornece implementações de recursos de manipulação de bit. Algo que fosse equivalente à BitConverter do C#.

BitConverter: Converts base data types to an array of bytes, and an array of bytes to base data types.

Valeu!

3 Respostas

lucamartins

Depende do que vc quer fazer.
Para manipular os bits o java oferece os operadores de bit. Nos quais são: |, &, ~ e ^. ( Acho que eu esqueci algum! )
Se vc quiser ver o número em binário a Wrapper Class Integer oferece o metodo estático “toBinaryString” que retorna uma string com o binário.

Segue exemplo de operação bit a bit :

int a = 1;
        int b = 2;
        System.out.println( a|b );

PS: Esqueci de mencionar os deslocadores de bit << e >>, aonde ainda temos a variação >>>, que não leva em conta o bit do sinal.

T

Para certas coisas, use uma combinação de DataOutputStream com ByteArrayOutputStream. Exemplo:

int x = 0xcafebabe;
char y = '\ucafe';
double d = 12.345;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream (baos);
dos.writeInt (x);
dos.writeChar (y);
dos.writeDouble (d);
dos.close();
byte[] bytes = baos.toByteArray();

Você converteu os dados de x, y e d (total 4 + 2 + 8 = 14 bytes) em um array de bytes.

sawp32

Na verdade eu queria algo como:

float x = 10.5;
int i = BitConverter.ToInt32(BitConverter.GetBytes(x), 0);
i = i >> 1; //divisao por 2
x = BitConverter.ToSingle(BitConverter.GetBytes(i), 0); // x float de novo
Criado 19 de março de 2009
Ultima resposta 20 de mar. de 2009
Respostas 3
Participantes 3