C#通过按位运算符/ bitshift合并3个数字

时间:2013-09-20 21:53:36

标签: c# bit-manipulation bit-shift

我从16位数开始,代表RGB565格式的3种不同颜色。我设法把它分成3个单独的位(红色,绿色和蓝色)。我现在已对位进行了更改,并且变量为vRed,vGreen和vBlue。如何将它们再次合并为一个16位数字?

1 个答案:

答案 0 :(得分:2)

怎么样

int rgb565 = vBlue | (vGreen << 5) | (vRed << 11);

int rgb565 = (((vRed << 6) | vGreen) << 5) | vBlue;

如果需要,您可以在之后将其转换为ushort