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

本文关键字:合并 数字 运算符 | 更新日期: 2023-09-27 18:32:22

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

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

怎么样

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

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

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