- ベストアンサー
rgb値を16進数に変換
r,g,b値がそれぞれ10進数で与えられ、それらをそれぞれ16進数に変換します。このとき、例えばrの値が10進数でnだとすると、 (16進数の2桁目)=n/16 (16進数の1桁目)=n mod 16 になると思いました。 しかし、手元にある、人からもらったサンプルでは、 (16進数の2桁目)=(n mod 256)/16 となっていました。1桁目は私の考えと同じでした。 なぜn mod 256が入っているのか分かる方、教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>(16進数の2桁目)=(n mod 256)/16 n >= 256 でも正しい値を返すより頑健な(汎用的な)コードです。 0 <= n <= 255 がチェックされているならどちらでも 同じです。
その他の回答 (1)
- ok-kaneto
- ベストアンサー率39% (1798/4531)
回答No.1
エラーデータ(256以上の値)が入ってくるかもしれない事を考慮したのでしょう。
質問者
お礼
回答ありがとうございました。 納得です。
お礼
>0 <= n <= 255 がチェックされているなら そのサンプルプログラムはチェックされていなかったので、modが入っていたのですね。 理解できました。 回答ありがとうございました。