Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 将RGB单元拆分为其单独的RGB组件_Language Agnostic_Colors_Bit Manipulation - Fatal编程技术网

Language agnostic 将RGB单元拆分为其单独的RGB组件

Language agnostic 将RGB单元拆分为其单独的RGB组件,language-agnostic,colors,bit-manipulation,Language Agnostic,Colors,Bit Manipulation,我有一个RGB颜色作为单元存储。我可以使用如下表达式中的按位左和按位or运算符从RGB值创建此值: colour = r<<16 | g<<8 | b; r = ( colour >> 16 ) & 0xFF; g = ( colour >> 8 ) & 0xFF; b = colour & 0xFF; color=r类似这样的东西: colour = r<<16 | g<<8 | b; r

我有一个RGB颜色作为单元存储。我可以使用如下表达式中的按位左和按位or运算符从RGB值创建此值:

colour = r<<16 | g<<8 | b;
r = ( colour >> 16 ) & 0xFF;
g = ( colour >> 8 )  & 0xFF;
b = colour & 0xFF;
color=r类似这样的东西:

colour = r<<16 | g<<8 | b;
r = ( colour >> 16 ) & 0xFF;
g = ( colour >> 8 )  & 0xFF;
b = colour & 0xFF;

假设8位组件值。按位和十六进制
0xFF
掩码仅为每个组件选择8位。

使用移位,然后使用&运算符屏蔽不需要的位:

r = (colour >> 16) & 0xff;
g = (colour >> 8) & 0xff;
b = colour & 0xff;
r = color >> 16;
g = (color >> 8) & 255;
b = color & 255;
或者:

b = color & 255;
color >>= 8;
g = color & 255;
r = color >> 8;

谢谢大家的快速回答。所有3个都是正确的。我猜你们都在同一时间打字。