Hallo,
ich hab eine Frage zu den bitweisen Operatoren. Und zwar habe ich folgenden Code, den ich leider nicht ganz nachvollziehen kann:
Vorweg: i1 und i2 sind Integerwerte, die später als Farben interpretiert werden.
Was macht z.b. diese Zeile: int red = singleShuffle((i1 >> 16) & 255,(i2 >> 16) & 255,p); ?
In der singleShuffle Methode werden die einzelnen Farbanteile zu einem bestimmten Prozentsatz gemischt, das ist mir klar. Mir geht es hier vielmehr um das Rechtsshiften in Zeile 6 z.B. Wenn ich um 16 shifte erreiche ich den Rotanteil einer bestimmten Farbe. Aber wie funktioniert das genau? Was wird da gemacht? Und was ich zudem auch nicht verstehe ist das bitweise Und (& 255). Signalisiert das einfach nur, dass man den vollen Farbanteil haben will?
Und warum wird am Ende der colorShuffle Methode wieder ein Linksshift vorgenommen? Müssen die berechneten vorher rechtsgeshifteten Werte jetzt wieder in den Urstandszustand gebracht werden?
Ich stehe etwas auf dem Schlauch, ich hoffe, dass ich die Frage(n) etwas verständlich formulieren konnte.
ich hab eine Frage zu den bitweisen Operatoren. Und zwar habe ich folgenden Code, den ich leider nicht ganz nachvollziehen kann:
Java:
int singleShuffle(int i1_part, int i2_part, int p) {
return i1_part + (i2_part – i1_part) * p / 100;
}
int colorShuffle(int i1, int i2, int p) {
int red = singleShuffle((i1 >> 16) & 255,(i2 >> 16) & 255,p);
int green = singleShuffle((i1 >> 8) & 255,(i2 >> 8) & 255,p);
int blue = singleShuffle((i1) & 255,(i2) & 255,p);
return (255 << 24) | (red << 16) | (green << 8) | blue;
}
Vorweg: i1 und i2 sind Integerwerte, die später als Farben interpretiert werden.
Was macht z.b. diese Zeile: int red = singleShuffle((i1 >> 16) & 255,(i2 >> 16) & 255,p); ?
In der singleShuffle Methode werden die einzelnen Farbanteile zu einem bestimmten Prozentsatz gemischt, das ist mir klar. Mir geht es hier vielmehr um das Rechtsshiften in Zeile 6 z.B. Wenn ich um 16 shifte erreiche ich den Rotanteil einer bestimmten Farbe. Aber wie funktioniert das genau? Was wird da gemacht? Und was ich zudem auch nicht verstehe ist das bitweise Und (& 255). Signalisiert das einfach nur, dass man den vollen Farbanteil haben will?
Und warum wird am Ende der colorShuffle Methode wieder ein Linksshift vorgenommen? Müssen die berechneten vorher rechtsgeshifteten Werte jetzt wieder in den Urstandszustand gebracht werden?
Ich stehe etwas auf dem Schlauch, ich hoffe, dass ich die Frage(n) etwas verständlich formulieren konnte.