0

嘿,我正在使用 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;
4

1 回答 1

0

这些是按位运算。p>>24 将 p int 24 中的第一个字节向右移动, &0xff 执行按位和移位数字和十六进制数字 ff(十进制 255)。avg << 16 将 avg int 16places 中的第一个字节向左移动。和 | 按位或使用其他值执行。这些就是所谓的位掩码。搜索术语按位运算和位掩码以获取更多信息。希望我帮助:)

于 2016-04-02T12:15:37.770 回答