不明白:(x>>> 24)& 0xff

时间:2016-04-02 12:10:43

标签: java sobel

嘿,我正在使用JAVA(sobel运算符)中的图像,我不明白某些代码行是什么意思。

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;

1 个答案:

答案 0 :(得分:0)

这些是按位操作。 p>&gt; 24将p int中的第一个字节移位到右边的24个位置,并且&amp; 0xff按位移动并且移位数字和十六进制数字ff(十进制255)。 avg&lt;&lt; 16将第一个字节移位到avg int 16个位置到左边。并且|按位或与其他值一起执行。这些就是所谓的位掩码。搜索术语按位运算和位掩码以获取更多信息。希望我帮助过:)