2016-04-02 16 views
0

Hey Ich arbeite mit Bild in JAVA (Sobel Operator) und ich verstehe nicht, was einige Zeilen des Codes bedeuten.Ich verstehe nicht: (x >> 24) & 0xff

int p = img.getRGB(x,y); 
int a = (p>>24)&0xff; 
int r = (p>>16)&0xff; 
int g = (p>>8)&0xff; 
int b = p&0xff; 
p = (a<<24) | (avg<<16) | (avg<<8) |avg; 

Also könnte jemand erklären, was diese Zeilen bedeuten?

(p>>24)&0xff 
p = (a<<24) | (avg<<16) | (avg<<8) |avg; 

Antwort

0

Dies sind bitweise Operationen. p >> 24 verschiebt erstes Byte in p int 24 Stellen nach rechts und & 0xff führt bitweise und mit verschobener Zahl und hexadezimaler Zahl ff (dezimal 255) aus. avg < < 16 verschiebt erstes Byte in avg int 16places nach links. Und | führt bitweise oder mit anderen Werten aus. Dies sind sogenannte Bitmasken. Suchbegriffe bitweise Operationen und Bitmasken für weitere Informationen. Hoffe, dass ich geholfen habe :)