Ric*_*ide 7 language-agnostic bit-manipulation colors
我将RGB颜色存储为uint.我可以使用按位左和按位或运算符在RGB值中创建这个,如下所示:
colour = r<<16 | g<<8 | b;
Run Code Online (Sandbox Code Playgroud)
我想做相反的事情.我有最终的数字,我想要r,g和b值.有谁知道如何做到这一点?
Pau*_*l R 15
r = (colour >> 16) & 0xff;
g = (colour >> 8) & 0xff;
b = colour & 0xff;
Run Code Online (Sandbox Code Playgroud)
像这样的东西:
r = ( colour >> 16 ) & 0xFF;
g = ( colour >> 8 ) & 0xFF;
b = colour & 0xFF;
Run Code Online (Sandbox Code Playgroud)
假设8位组件值.按位和十六进制0xFF掩码仅为每个组件选择8位.
你使用shift,然后使用&运算符来屏蔽不需要的位:
r = color >> 16;
g = (color >> 8) & 255;
b = color & 255;
Run Code Online (Sandbox Code Playgroud)
或者:
b = color & 255;
color >>= 8;
g = color & 255;
r = color >> 8;
Run Code Online (Sandbox Code Playgroud)