Language agnostic 将RGB单元拆分为其单独的RGB组件
我有一个RGB颜色作为单元存储。我可以使用如下表达式中的按位左和按位or运算符从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
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个都是正确的。我猜你们都在同一时间打字。