Bitweise Operatoren in der Grafikprogrammierung

Status
Nicht offen für weitere Antworten.

venomicious

Mitglied
Hallo,

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.
 

yxcvbn

Mitglied
Hi

Die int Werte i1,i2 werden in 4 Bytes zerlegt alpha,rot,grün,blau.
Mit i1 >> 16 wird der Rotwert 2 Bytes nach rechts verschoben, d.h. an die letzte Stelle.
Mit & 255 wird dann alles links vom letzten Byte abgeschnippelt.
Die Zeile mit return sollte damit auch klar werden.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
P Bitweise Operatoren Java Basics - Anfänger-Themen 2
Phillip Bitweise Operatoren Java Basics - Anfänger-Themen 11
A Bitweise Operatoren Java Basics - Anfänger-Themen 1
G Logische und Bitweise Operatoren Java Basics - Anfänger-Themen 2
Z Bitweise tauschen Java Basics - Anfänger-Themen 12
A string bitweise in long umwandeln Java Basics - Anfänger-Themen 7
M Datentypen Bitweise Dividieren Java Basics - Anfänger-Themen 3
J Bitweise addieren Java Basics - Anfänger-Themen 6
S Bitweise Verarbeitung? Java Basics - Anfänger-Themen 7
S byte-array bitweise auslesen Java Basics - Anfänger-Themen 14
S Bitweise Buchstaben verändern! Java Basics - Anfänger-Themen 26
B Spielereien mit bit wise Operatoren und langen Binärzahlen Java Basics - Anfänger-Themen 3
K Für was braucht man die left und right shift operatoren? Was bringen die, also welchen Zweck haben die? Java Basics - Anfänger-Themen 15
Kleinerals2 NaN Operatoren Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
D Erste Schritte Operatoren zur Manipulation von Bits "~" Java Basics - Anfänger-Themen 5
M Operatoren Umwandlung div. Operatoren Java Basics - Anfänger-Themen 7
V Operatoren Was will mir die Tabelle in meinem Lehrbuch sagen? (logische Operatoren) Java Basics - Anfänger-Themen 4
G operatoren Java Basics - Anfänger-Themen 3
beatles Operatoren Operatoren - Berechnung Java Basics - Anfänger-Themen 40
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
X Shift-Operatoren Java Basics - Anfänger-Themen 1
C Operatoren Java Basics - Anfänger-Themen 6
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
M Einfache und Doppelte Operatoren Java Basics - Anfänger-Themen 3
S Operatoren & Terminierung Java Basics - Anfänger-Themen 1
O Priorität bei Operatoren Java Basics - Anfänger-Themen 4
N Potenzierung durch einfache Operatoren Java Basics - Anfänger-Themen 13
B Geschwindigkeitsabhängigkeit von Anz. d. Operatoren pro Zeile Java Basics - Anfänger-Themen 12
M hexadezimal in binär mit Hilfe von Shift-Operatoren Java Basics - Anfänger-Themen 6
S Arithmetische Operatoren Java Basics - Anfänger-Themen 7
L Erste Schritte Fragen zu Arrays, Inkrement Operatoren, Dekrement Operatoren ? Java Basics - Anfänger-Themen 9
lulas[]args Fehler - Logische Operatoren Java Basics - Anfänger-Themen 9
H Nur Zahlen, Klammern und Operatoren Java Basics - Anfänger-Themen 3
D Frage zu Bit Operatoren in der Programmierung Java Basics - Anfänger-Themen 9
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
L [Logische Operatoren] referenzierbar? Java Basics - Anfänger-Themen 3
W Was tun die Operatoren ? und : (Bedingungen) Java Basics - Anfänger-Themen 15
W Datentypen Operatoren für eigenen Datentyp nutzen Java Basics - Anfänger-Themen 2
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
E Logische Operatoren && und & Java Basics - Anfänger-Themen 14
? Operatoren && || Java Basics - Anfänger-Themen 10
M Aufgabe Arithmetische Operatoren Java Basics - Anfänger-Themen 12
H While Schleife mit Operatoren Java Basics - Anfänger-Themen 14
T Rechnen mit Operatoren Java Basics - Anfänger-Themen 2
M Arithmetische Operatoren Java Basics - Anfänger-Themen 40
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
M Sind ternäre Operatoren für einen guten Programmierstil wichtig ? Java Basics - Anfänger-Themen 10
E IF Anweisung mit logischen Operatoren Java Basics - Anfänger-Themen 18
JStickman Was bringen Bit-Operatoren? Java Basics - Anfänger-Themen 14
J Matheaufgabe aus String mit mehreren Operatoren Java Basics - Anfänger-Themen 16
D Logische Operatoren Java Basics - Anfänger-Themen 6
D Grundlagen - Operatoren Java Basics - Anfänger-Themen 5
1 Datentypen Rückgabetyp von Java-Operatoren Java Basics - Anfänger-Themen 2
SebSnake Operatoren für eigene Datentypen Java Basics - Anfänger-Themen 3
M logische operatoren Java Basics - Anfänger-Themen 2
C Variablen für Operatoren Java Basics - Anfänger-Themen 3
W Rangfolge von Operatoren Java Basics - Anfänger-Themen 16
N zahlen und operatoren gemischt in einem Feld Java Basics - Anfänger-Themen 9
T Logische Operatoren Java Basics - Anfänger-Themen 39
C Dynamische Operatoren! Java Basics - Anfänger-Themen 5
G Shift Operatoren Java Basics - Anfänger-Themen 4
R Bedingte Opeatoren / Verschachtelte Operatoren Java Basics - Anfänger-Themen 4
7 Operatoren in der While Schleife Java Basics - Anfänger-Themen 5
H Postfix Operatoren Java Basics - Anfänger-Themen 2
S Variablen + Operatoren "mixen" Java Basics - Anfänger-Themen 5
F Experimente mit Bit-Operatoren Java Basics - Anfänger-Themen 7
G Nutzen von bitweisen Operatoren Java Basics - Anfänger-Themen 8
J Operatoren in Java Java Basics - Anfänger-Themen 2
S Verwendung bitweiser Operatoren Java Basics - Anfänger-Themen 6
R Binäre logische Operatoren Java Basics - Anfänger-Themen 21
B Java Grafikprogrammierung Dreieck Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben