Colors 以16位编码RGB颜色

Colors 以16位编码RGB颜色,colors,bits,Colors,Bits,我正在读一本android游戏开发书,我遇到了RGB三元组:(31,31,45)使用16位(红色得到5位,绿色得到6位,蓝色得到5位) 我对三胞胎中的最后一个数字有点困惑:45。如果最后一个坐标是蓝色,而蓝色只得到5位,那么最后一个坐标点怎么可能有45位?蓝色的最高数字不应该是31吗 顺便说一句,这个三胞胎创造了粉红色 有人能帮你澄清这一困惑吗 谢谢 编辑:如果颜色为0xFC0D的十六进制有帮助,您的十六进制代码将显示发生的情况:45=0x2d,但十六进制代码的低位只有0xd,基本上高位被截断,

我正在读一本android游戏开发书,我遇到了RGB三元组:(31,31,45)使用16位(红色得到5位,绿色得到6位,蓝色得到5位)

我对三胞胎中的最后一个数字有点困惑:45。如果最后一个坐标是蓝色,而蓝色只得到5位,那么最后一个坐标点怎么可能有45位?蓝色的最高数字不应该是31吗

顺便说一句,这个三胞胎创造了粉红色

有人能帮你澄清这一困惑吗

谢谢


编辑:如果颜色为0xFC0D的十六进制有帮助,您的十六进制代码将显示发生的情况:45=0x2d,但十六进制代码的低位只有0xd,基本上高位被截断,因为您是正确的。可能的最高值是0x1F

可能是测试人员/编辑遗漏了什么

RGB代码可能是这样构建的:

RGB(r,g,b)
{
    code = (r & 0x1f) << 11;
    code |= (g & 0x3f) << 5;
    code |= (b & 0x1f) << 0;
}
RGB(r,g,b)
{
十六进制代码=(r&0x1f)FC0D为

二进制格式的1111110000001101

所以

R=b11111=31 G=b100000=32
B=b01101=13

好吧,书中的这些东西总是让我很沮丧。不过谢谢!仅供参考!我遇到了一个类似的问题,写了一个a来做24-16位