2

私はアンドロイドゲーム開発の本を読んでいて、RGBトリプレットに出くわしました:(31、31、45)16ビットを使用しています(赤は5ビット、緑は6ビット、青は5ビット)。

トリプレットの最後の数字である45について少し混乱しています。最後の座標が青で、青が5ビットしかない場合、最後の座標スポットに45を設定するにはどうすればよいですか。青の可能な最大数は31であるべきではありませんか?

ところで、おそらくこのトリプレットはピンク色を作成します。

誰かが混乱を解消するのを手伝ってもらえますか?

ありがとう!

編集:色の16進数が0xFC0Dである場合

4

2 に答える 2

2

16進コードは何が起こるかを示しています:45 = 0x2dですが、16進コードの下位ビットには0xdしかありません。正しいので、最上位ビットは0x1Fであるため、基本的に上位ビットは切り取られます。

おそらく、テスター/編集者がすり抜けたものでしょう。

RGBコードは次のように作成されている可能性があります。

RGB(r,g,b)
{
    code = (r & 0x1f) << 11;
    code |= (g & 0x3f) << 5;
    code |= (b & 0x1f) << 0;
}

したがって、余分なビットはマスクされます。

于 2012-09-03T20:13:13.137 に答える
0

16進数のFC0Dは

バイナリの1111110000001101

それで

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

于 2012-09-03T20:13:42.773 に答える