【发布时间】:2013-12-09 11:57:06
【问题描述】:
我正在尝试创建 ARGB 像素,我看过这个例子:
int createPixel(int r, int g, int b, int a)
{
return (a<<24) | (r<<16) | (g<<8) | (b<<0);
}
为了理解,我想得到这个问题的答案:
- 结果(返回)是什么?
- 如果每种颜色的值为 255,那么对于 RED 16 是 255 而 23 是 0?
【问题讨论】:
我正在尝试创建 ARGB 像素,我看过这个例子:
int createPixel(int r, int g, int b, int a)
{
return (a<<24) | (r<<16) | (g<<8) | (b<<0);
}
为了理解,我想得到这个问题的答案:
【问题讨论】:
<< 是二进制左移,这意味着 a 将左移 24 位,红色 16,...
结果是一个 4 字节的整数,第一个字节是 a(因为向左移动了 24 位(3 字节)),第二个字节是 r,第三个是 g,第四个是 b。
结果0xaarrggbb
示例输入(255,255,0,16) 返回0xFFFF000F
0x 代表“十六进制格式”
| 是按位或。
【讨论】: