|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2005
Città: Catania
Messaggi: 188
|
[Java] Da byte ad intero
Ragazzi mi serve una mano. Ho un file binario creato in C++ e rappresentante interi...gli interi sono da 4 byte e con un programmino in java mi interessava leggere il file a porzioni di 4 byte e ricavarmi ogni volta l'intero corrispondente....Sapete darmi una mano?
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
non so se ho capito bene, ma se vuoi dividere un int in 4 parti credo ti basti fare qualche shift e castarlo in byte, credo eh...
una cosa del genere int i; byte b; b=(i>>4)&0000000000001111; |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
int val = byte1 & 0xFF | (byte2 & 0xFF) << 8 | (byte3 & 0xFF) << 16 | (byte4 & 0xFF) << 24; dove byte1 è chiaramente il LSB e byte4 è il MSB. Poi come prendere i singoli byte dal file, dipende se l'intero è memorizzato in formato Little-Endian o Big-Endian. Una soluzione più completa e pulita sarebbe quella di creare una nuova classe, es. IntegerReader a cui passi un InputStream. La classe potrebbe ad esempio contenere un metodo readInt(). Nota che esistono già delle classi in java.io per scrivere/leggere tipi primitivi su stream. Sono le classi DataOutputStream e DataInputStream. L'unica cosa è che, per gestire la lettura/scrittura in modo indipendente dalla piattaforma, gestiscono i dati esclusivamente in formato Big-Endian.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:46.


















