0

我正在尝试创建 ARGB 像素,我已经看到了这个例子:

int createPixel(int r, int g, int b, int a) 
{
 return (a<<24) | (r<<16) | (g<<8) | (b<<0);
}

为了理解,我想得到这个问题的答案:

  1. 结果(回报)是什么?
  2. << 是什么意思?
  3. 如果每种颜色的值是 255,那么对于 RED 16 是 255 而 23 是 0?
4

1 回答 1

2

<<是二进制左移,这意味着 a 将向左移动 24 位,红色 16,...结果是一个 4 字节整数,第一个字节是 a(因为向左移动了 24 位(3 字节)),第二个字节是 r,第三个是 g,第四个是 b。

结果0xaarrggbb

示例输入(255,255,0,16)返回0xFFFF000F

0x 代表“十六进制格式”

|是按位或。

于 2013-12-09T12:02:59.713 回答