Arquivo compartilhado entre Java e C++

1 resposta
U

Pessoal, tenho uma aplicação Java que grava um arquivo de inteiros e shorts.
O Conteúdo desse arquivo é lido por um programa em C++. Portanto, para gravar o arquivo com um numero inteiro preciso usar a seguinte função que converte os Bits (sei lá porque precisa disso) e grava o arquivo:

public void gravarInteiro (RandomAccessFile file, int valor){ int x = valor; x = ((x >> 24) & (0xFF) | (x >> 8) & (0xFF00) | (x << 8) & (0xFF0000) | (x << 24) & (0xFF000000)); try { file.writeInt(x); } catch (IOException e) { e.printStackTrace(); } }

Essa função funciona. Porém só pra inteiros… foi um amigo quem me recomendou que fizesse assim. O problema é que preciso gravar também, além de inteiros, valores dos tipos SHORT e FLOAT. e num sei como manipular os bits de forma correta.

Alguém pode me mostrar como é?

1 Resposta

I

Acho que tu deverias tentar primeiro entender o porquê desta conversão. Java trata inteiros como 32 bits e os valores são sinalizados. Como são estes em C++? Parece-me que pode ser 8, 16, 32 e até 64 bits e o range de valores ainda vai depender se são ou não sinalizados. T+

Criado 18 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 1
Participantes 2