Schauen Sie den Code unten:Java - binäre AND (&) Operation für image.getRGB (x, y);
image.getRGB(x,y) & 0x000000FF
Wenn das Ergebnis image.getRGB (x, y) -16777216 ist, das UND-Operationsergebnis 0 (schwarze Farbe)
Wenn das Ergebnisbild. getRGB (x, y) ist -1, das UND-Operationsergebnis 255 (weiße Farbe)
Meine Frage ist, wenn Sie in Java - Understanding about image.getRGB(x,y) output in Binary term meiner verwandten Artikel sehen Sie das Ergebnis der image.getRGB sehen (x , y) im binären Begriff gehören Alpha, Rot, Grün, an d Blau (32 Bit), aber 0x000000FF ist nur 8 Bit; zum Beispiel:
image.getRGB : 1111 1111 0000 0000 0000 0000 0000 0000
0x000000FF : 1111 1111
image.getRGB & 0x000000FF : 0000 0000
Zweites Beispiel:
image.getRGB : 1111 1111 1111 1111 1111 1111 1111 1111
0x000000FF : 1111 1111
image.getRGB & 0x000000FF : 1111 1111
Wie sie zwischen 8 Bit von 0x00000FF mit 32-Bit-image.getRGB vergleichen, so dass sie Ergebnis 0 oder 255, wie mein Fall oben zu bekommen?
Sind Sie sicher, dass Sie keinen Fehler gemacht haben. Dieser Code gibt aus: 'System.out.println (0xFF << 24 & 0xFF); → 0' 'System.out.println (Color.black.getRGB()); → -16777216' 'System.out.println (Color.black.getRGB() & 0xFF); → 0' – Maljam
@maljam: sorry, ich wurde meine Frage bearbeitet. Sie können das oben noch einmal überprüfen. Danke – Michael
'-16777216' ==' 0xFF00000' –