Hallo,
ich bin ganz neu hier im Forum. Ich brauche sehr dringend Hilfe um ein Java-Code zu verstehen. Ich bin Anfänger in Java oder überhaupt in Programmieren. Vielleicht ist ja meine Frage lächerlich aber wie gesagt bin Anfänger und kann nicht so gut verstehen.:noe:
Mein Problem ist folgendes : Ich möchte selber ein Programm schreiben, dass die Bilder im BMP-Format einliest und ausliest. Da ich selber keine Ahnung habe, wie das geht, habe ich mich entschieden, einpaar fertige Code mir anzusehen , um eine Idee zu haben, wie ein Bild eingelesen wird.
Ich habe ein Code gefunden, in dem Funktionen zum Einlesen geschrieben sind.
Das Code sieht so aus :
Ich verstehe die folgenden Zeilen nicht.
return ((i<<24)|((i&0x0000FF00)<<8)|((i&0x00FF0000)>>>8)|(i>>>24));
return (short)((i<<8)|(i>>>8));
Ich verstehe nicht, wofür 24 steht oder 8 oder 0x0000FF00 oder 0x00FF0000...
Könnte mir jemand vielleicht erklären, was diese Zahlen bedeuten?
Für Hilfe wäre ich sehr dankbar.

ich bin ganz neu hier im Forum. Ich brauche sehr dringend Hilfe um ein Java-Code zu verstehen. Ich bin Anfänger in Java oder überhaupt in Programmieren. Vielleicht ist ja meine Frage lächerlich aber wie gesagt bin Anfänger und kann nicht so gut verstehen.:noe:
Mein Problem ist folgendes : Ich möchte selber ein Programm schreiben, dass die Bilder im BMP-Format einliest und ausliest. Da ich selber keine Ahnung habe, wie das geht, habe ich mich entschieden, einpaar fertige Code mir anzusehen , um eine Idee zu haben, wie ein Bild eingelesen wird.
Ich habe ein Code gefunden, in dem Funktionen zum Einlesen geschrieben sind.
Das Code sieht so aus :
Java:
import java.io.*;
public class PCBinaryInputStream {
DataInputStream file;
public PCBinaryInputStream(File f) throws IOException
{
file = new DataInputStream(new BufferedInputStream(new FileInputStream(f)));
}
public int readInt() throws IOException
{
int i=file.readInt();
return ((i<<24)|((i&0x0000FF00)<<8)|((i&0x00FF0000)>>>8)|(i>>>24));
}
public short readShort() throws IOException
{
int i=file.readUnsignedShort();
return (short)((i<<8)|(i>>>8));
}
public byte readByte() throws IOException
{
return (byte)file.readUnsignedByte();
}
public void readByteArray(byte b[]) throws IOException
{
file.readFully(b);
}
public void skip(long nbytes) throws IOException
{
file.skip(nbytes);
}
public void close() throws IOException
{
file.close();
file=null;
}
public void finalize() {
if (file != null) {
try {
close();
} catch (IOException e) {}
}
}
}
Ich verstehe die folgenden Zeilen nicht.
return ((i<<24)|((i&0x0000FF00)<<8)|((i&0x00FF0000)>>>8)|(i>>>24));
return (short)((i<<8)|(i>>>8));
Ich verstehe nicht, wofür 24 steht oder 8 oder 0x0000FF00 oder 0x00FF0000...
Könnte mir jemand vielleicht erklären, was diese Zahlen bedeuten?
Für Hilfe wäre ich sehr dankbar.