DWORD color = 0xccaa00;
BYTE r = color >> 16;
BYTE g = color >> 8 &0xFF;
BYTE b = color & 0xFF;
& 按位与
如果对应的位都为1,那么结果就是1, 如果任意一个位是0 则结果就是0
0xFF0000
二进制表示 1111 1111 0000 0000 0000 0000
右移16位为 0000 0000 0000 0000 1111 1111 = R
右移8位为0000 0000 1111 1111 0000 0000 与0xFF(0000 0000 0000 00001111 1111)进行按位与操作 = 0 = G
BYTE r = color >> 16;
BYTE g = color >> 8 &0xFF;
BYTE b = color & 0xFF;
& 按位与
如果对应的位都为1,那么结果就是1, 如果任意一个位是0 则结果就是0
0xFF0000
二进制表示 1111 1111 0000 0000 0000 0000
右移16位为 0000 0000 0000 0000 1111 1111 = R
右移8位为0000 0000 1111 1111 0000 0000 与0xFF(0000 0000 0000 00001111 1111)进行按位与操作 = 0 = G
本文详细介绍了如何将DWORD类型的RGB颜色值转换为单独的红、绿、蓝三通道值。通过位运算的方法,实现了从DWORD中提取各颜色通道的具体数值。
4826

被折叠的 条评论
为什么被折叠?



