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.
🙂