hallo!
ich hab hier ein kleines problem...
ich will eine datei auslesen. es handelt sich dabei um eine binärdatei von einem älteren spiel. ich les die datei byte-weise aus. nur leider is das gelesene material totaler mist. deshalb liegt die vermutung sehr nahe, dass es little endian ist.
leider habe ich keine ahnung von diesem bitgeshifte...
ich bräuchte folgende funktionen:
2 byte -> short
2 byte -> unsigned short (int)
4 byte -> int
also die ausgelesenen bytes sind little endian und ich glaube die resultierenden zahlen (short/int) sollen es auch sein.
folgende funktion hab ich mit der suche gefunden:
[JAVA=4]
private static int toInt(byte b[])
{
return (b[0] & 0xFF) | ((b[1] & 0xFF) << 8) | ((b[2] & 0xFF) << 16) | ((b[3] & 0xFF) << 24);
}
[/code]
die erstellt zwar, nen int in little endian, aber die beachtet doch nicht, dass die bytes little endian sind?! ich bin verwirrt...
ich hab hier ein kleines problem...
ich will eine datei auslesen. es handelt sich dabei um eine binärdatei von einem älteren spiel. ich les die datei byte-weise aus. nur leider is das gelesene material totaler mist. deshalb liegt die vermutung sehr nahe, dass es little endian ist.
leider habe ich keine ahnung von diesem bitgeshifte...
ich bräuchte folgende funktionen:
2 byte -> short
2 byte -> unsigned short (int)
4 byte -> int
also die ausgelesenen bytes sind little endian und ich glaube die resultierenden zahlen (short/int) sollen es auch sein.
folgende funktion hab ich mit der suche gefunden:
[JAVA=4]
private static int toInt(byte b[])
{
return (b[0] & 0xFF) | ((b[1] & 0xFF) << 8) | ((b[2] & 0xFF) << 16) | ((b[3] & 0xFF) << 24);
}
[/code]
die erstellt zwar, nen int in little endian, aber die beachtet doch nicht, dass die bytes little endian sind?! ich bin verwirrt...