Byte[] in Int/Short/Char

Iam_Fiction

Mitglied
Hallo,
wie kann ich eine Folge von Bytes welche ich in ein Array aus einer Datei eingelesen habe in die Typen wie Int zurückcasten. Vorraussetzung hierbei ist, dass die Byte-Order in der Datei Little-Endian ist.
 
Hallo,

ich weiß nicht ob es einen anderen Weg gibt, aber ich würde es mal so lösen.

Halt je nach dem was du hast Little- oder Big-Endian läufst durch dein Array und multiplizierst die Werte bis du die Byte-Anzahl erreicht hast die der Typ hat (z.b. Integer 4 Byte = 4 Durchläufe)

Code:
int x;
byte[] b = {255,255,255,255};

for(int i = 0; i < 3; i++){
  x*=b[i];
}


Bei char müsstest du es halt z.b. in eine int-Variable schreiben und dann einem char zuweisen.


MFG

zEriX
 
Benutze am besten einen ByteBuffer:
Java:
ByteBuffer b = ByteBuffer.wrap(byte [] data).order(ByteOrder.LITTLE_ENDIAN);
b.getInt();
 
Ok, ich hatte mich geirrt, hatte selbst nen denkfehler. :-(

Aber mit dem ByteBuffer gehts natürlich besser. :-)
 
Zurück