2016-04-02 26 views
0

ちょっと私はJava(sobel演算子)で画像を扱っていますが、コードの一部が何を意味するのか分かりません。理解していません:(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; 

誰かがこれらの行の意味を説明できますか?

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

答えて

0

ビット演算です。 p >> 24はp intの最初のバイトを24桁右にシフトし、& 0xffはシフトされた数字と16進数ff(10進数255)でビット単位で実行されます。 avg < < 16は、最初のバイトを平均16進数で左にシフトします。そして|ビット単位で、または他の値で実行します。これらはいわゆるビットマスクです。詳細については、ビット演算とビットマスクを検索してください。希望私は助けた:)

関連する問題