質問: 数3の進法の問題がわかりません。 問題 光の三原色(赤、緑、青)を使って色を作るとき、1画素当たり1バイトの輝度をそれぞれの色に与えるとする。1画素の色を輝度、(赤、緑、青)=(117、206、11)で指定したとする。この色の輝度を2進法、16進法で表せ。 テスト前で分からなくて困っています。 どなたかわかる方教えて頂けると非常に助かります。
回答: 添付図は、WORDの色設定ですが、一番下のHexが16進数の場合の答えです。 2進数は、各16進数を2進数に直すだけ。ただし、赤・緑・青は各々8ビットで書くこと。 計算で求める時は、普通は、最初に2進数を計算で求め、それを暗算で16進数にします。 しかし、その方法だと割り算回数が多くなるので、最初に16進数を計算で求め、暗算で2進数を求める手順のほうが、割り算は少なくて済みます。 例1.赤117を2進数に 2)117・・・商58、余り1 2)58・・・・商29、余り0 2)29・・・・商14、余り1 2)14・・・・・商7、余り0 2)7・・・・・・商3、余り1 2)3・・・・・・商1、余り1 2)1・・・・・・商0、余り1 →商が0なので計算終了。 最初の余りを1桁目に、その後の余りは上位桁に並べたものが、117の2進数表記。 それは、2進数1110101。 ただし、表すべき値域は、赤、緑、青ともに0~255なので、最大で8ビットを使う。 答えの表記方法は、添付図の「Hex(H)」のように、数字を並べるだけであり、色ごとの値をカンマ(,)で区切るような形式ではないため、たとえ「赤3→2進数11」だったとしても、先頭に0を補って8桁にせねばならない(ということが、問題文には書かれていないが、色表記では一般的)。 よって、赤の2進数は01110101。 これを16進数にするには、4ビットずつに区切って16進にするので、75。これは、添付図の「Hex(H)」の、上位2桁と同じ。 例2.緑206を16進数に 16)206・・・商12、余り14 16)12・・・・商0、余り12 →商が0なので計算終了。 最初の余りを1桁目に、その後の余りは上位桁に並べたものが、206の16進数表記。 14の16進数表記はE、12の16進数表記はCなので、 それは、16進数CE。 これを2進数にするには、12=8+4=23+22、 14=8+4+2=23+22+21なので、 2進数11001110