我正在阅读一本安卓游戏开发书,我遇到了RGB三元组:(31,31,45)使用16位(红色获得5位,绿色获得6位,蓝色获得5位)。 / p>
我对三元组中的最后一个数字感到有点困惑:45。如果最后一个坐标是蓝色,蓝色只有5位,那么如何在最后一个坐标点中得到45?蓝色可能不是最高的数字是31?
据推测,这个三联体会产生粉红色。 有人可以帮助消除困惑吗?谢谢!
编辑:如果它有助于颜色的十六进制是0xFC0D
答案 0 :(得分:2)
您的十六进制代码显示会发生什么:45 = 0x2d,但十六进制代码在低位只有0xd,基本上高位位被截断,因为您正确,最高可能值为0x1F。
可能是测试人员/编辑只是滑倒了。
RGB代码很可能是这样构建的:
RGB(r,g,b)
{
code = (r & 0x1f) << 11;
code |= (g & 0x3f) << 5;
code |= (b & 0x1f) << 0;
}
因此,任何额外的位都被屏蔽掉了。
答案 1 :(得分:0)
十六进制的FC0D是
二进制1111110000001101
所以
R = b11111 = 31 G = b100000 = 32 B = b01101 = 13