« 紅白歌合戦&実写版ボクシング映画、軽~い感想♪ | トップページ | 14年12月と年間の全走行距離&メモリとHDDの空き不足 »

「16進法」の解説~2進法、10進法との相互変換、ウェブカラー

今日は年末最後の数学系記事として、またプログラミングのシリーズをアッ

プする予定だったが、PCトラブルで時間をとられてしまったので、もっと簡単

に書ける話にしとこう。どこかで耳にしたことはあっても、具体的にはなかな

か縁遠い、「16進法」の簡単な説明だ。

 

2進法の桁数を少なくする「記数法」(数を記す方法)として、時々使われて

るのは知ってたけど、実際に計算したり書いたりしたことは一度も無かった。

ところが先日、ドラマ記事を書く時に、「ウェブカラー」(=ネット上の色)とい

うものの指定で16進法が使われてるのを目にしたのだ。縁遠かったものが、

急に身近に感じられたし、なるほど・・と納得もできた。

 

 

          ☆          ☆          ☆

141230a  身近で簡単な例として、

  ウィキペディアで「緑

  (green)という色の説

  明を見てみよう。一口に

  緑と言っても、文字通り

  「色々」とある♪ 

 

  原理的に一番ハッキリした

緑は、「lime」(ライム)と呼ばれる明るい緑で、これが三原色の一つになっ

てるらしい。その色は、ウェブカラー(webcolor)としては、16進表記で

「♯00FF00」と示されてた。

 

先頭のシャープ(♯、ハッシュ)は、16進法だと明示する記号。それに続く6ケ

タの数字・アルファベットは、2ケタずつに分かれて、順に赤・緑・青の三原色

の強さを示してる。「00 FF 00」とは、「赤は最弱、緑は最強、青は最弱」

にして混ぜ合わせた色という意味だ。三つ組の色コードだから、16進トリプ

レットとも呼ぶ。

 

各2ケタは16進法だから、16×16で256通りの強さを表すことが可能。だ

から、「00 FF 00」とは、別の言い方をするなら、「0 255 0」。つまり、

「赤はレベル0、緑はレベル255、青はレベル0」という意味になる。

 

パソコンのモニター画面を構成するピクセル(画素)ごとに、色を指定すれば、

様々なカラー表示が可能。色の種類は、

    256×256×256 = 1677万7216(色)

 

これだけの数を表現できる場合、フルカラーとか、トゥルーカラー、24ビット

カラーと呼ばれる。24ビットとは、簡単に言うなら2の24乗通りという意味だ。

 

141230h   ちなみに典型的な赤(red)なら、

   「#FF0000」、青(blue)なら

   「#0000FF」で、明快。

   黒が「#000000」で白が

   「#FFFFFF」というのは、直

   感的には逆のような気もして

   しまうが、黒とは色の無い色、

   白とは色が溢れてる色とい

   うことか。

 

「光の三原色」赤・緑・青に対して、「色の三原色」はシアン(薄めの青)、マゼ

ンタ(赤紫)、イエロー(黄)で、こちらはすべて混ぜると黒に近い色になるとい

う紛らわしい話もある。またいずれ、じっくり考えてみよう。。

 

 

          ☆          ☆          ☆

さて、16進法を初めて見た人には、「F」というアルファベットが引っ掛かる所

だろう。簡単に言うと、16番目の数を1文字(または1ケタ)で表すための記

号なのだ。

 

ふだん使う10進法だと、0~9までの10個の数字を用いる。2進法なら、0と

1の2個の数字。同様に、16進法なら、16個の数字を用いる。という事は、

0~9までの10個に加えて、あと6個の記号が必要になるわけで、それを

普通はA、B、C、D、E、Fで表す。簡単に言うと、A=10、B=11、C=12、

D=13、E=14、F=15ということだ。

 

では、十進法や二進法で表された数を、十六進法に変換するにはどうすれ

ばいいか。あるいは、逆の変換の方法はどうなのか。具体的にやり方を解説

しとこう。

 

 

          ☆          ☆          ☆

まず、ウォーミングアップも兼ねて、10進法から2進法への変換を再確認し

とこう。中学や高校で習う基礎的内容で、ネットでもあちこちに説明がある。

ここでは、10進法の6を、2進法に変える操作を見る。

 

141230b  まず、6を2で割って3、余り0。これ

  を左のように、上下逆にした割り算

  の筆算みたいにして書く。

 

141230c  次に、3を2で割って1、余り1。一

  番下に1が来たら、そこで終了。

  左下から右上に数を見て、110

  が答。2進法で表された2進数

  であることをハッキリさせる

ために、(110)₂ などと書く。つまり、 (6)₁₀ =(110)₂。

 

ちなみに、110を「ひゃく・じゅう」と読みたくなるが、理論的には誤りだ。それ

は、百の位や十の位を用いる十進法の読み方であって、二進法の場合は仕

方なく、「イチ・イチ・ゼロ」とでも読む所だろう。

 

逆に、二進法から十進法への変換は、意味を考えれば簡単だ。二進法では、

ケタが一つ上がるたびに2倍の数(または位)を表すから、

 

  (110)₂ = ( ×2²+×2¹+×2⁰ )₁₀

        = (6)₁₀

 

この場合、二進数の1ケタ目が0だから関係ないけど、2⁰=1 なので念のた

め。テストだと、計算間違いしやすいポイントになる。

 

 

          ☆          ☆          ☆

141230d_2  10進法から16進法への変

  換も、基本的に同じパター

  ン。16で割った商と余りを

  順に下に書いて行く。

 

  ただし、11はBと書くから、

(439)₁₀=(1B7) 。右辺の右下に、「16」と小さく書きたいけど、6の小さい

文字が使えない環境なので省略した。

 

いきなり(♯1B7)と書くと、誤解される恐れがある。16進法を表す英語は

hexadecimalだから、左に「HEX」を付けたり、右下に「hex」と書き添えたり

することもあるようだ。英語版ウィキで使われてた。

 

逆に、16進数を十進数に変換するなら、B=11に注意して、

 

   (1B7)hex = (1×16²+11×16¹+7×16⁰)₁₀

           = (439)₁₀

 

 

           ☆          ☆          ☆

最後に、2進法から16進法への変換について。これは、まず十進法に変換

して、さらに16進法にしてもいいが、直接やる方が遥かに便利。

 

141230f  2進法の

  110110111を

  例にとる。右から

  4ケタずつ、つま

  り16(2の4乗)

  ずつ区切って、

  1区画ごとに16

  進法の数へと直

  せばいい。   

 

上では一旦、それぞれの区画を10進数に直してるが、慣れれば直ちに一番

下の答えが書けるだろう。(1 11 7)hex、つまり、(1B7)hex。たかが16通

り覚えるだけで、瞬間的に変換可能。

 

141230g  逆に、16進数を2進

  数に直接変換する

  には、左のようにす

  ればいい。

 

  それでは、今日は

  この辺で。。☆彡

 

       (計 2518字)

| |

« 紅白歌合戦&実写版ボクシング映画、軽~い感想♪ | トップページ | 14年12月と年間の全走行距離&メモリとHDDの空き不足 »

パソコン・インターネット」カテゴリの記事

数学」カテゴリの記事

コメント

2進法、8進法、・・,16進法・・とそれとなく理解出来たとき、では、何進法が一番効率的なんだろう?と考えて見るのも楽しいですね。
今年も楽しい記事、沢山読みました。ありがとうございました。来年も宜しくお願い致します。
良いお年をお迎えください。

投稿: gauss | 2014年12月30日 (火) 14時07分

> gauss さん
  
こんばんは。毎度どうもです。
       
「効率」を比較するのは、一般に難しいですね。
「率」だから、「割られる量」と「割る量」が
あるわけですが、それらの組合せ方も問題だし、
特に「割られる量」の計算が厄介。
       
「電力」の選択の際にも同様。
原発とは単なる電力と放射能の施設ではなく、雇用、
産業、環境、温暖化、科学技術、防衛とも関わるもの。
とりわけ、最後の2つの計量は重要かつ厄介で、
まだあまり語られてない論点でしょう。。
   
          
話を戻すと、そもそもコンピューターにとって、
今後も2進法や16進法が効率的なのかどうか。
人間はずっと変わらず10進法ですからね。
     
人間は手の指が10本だからって話もありますが、
コンピューターのハードやソフトが変わるにつれて、
何が最適なのか、変わって来るような気がします。
例えば、九九の答えを出すだけなら、10進法入力に
対して、10進法の答の丸暗記を出力してもいいはず。
       
ともあれ、今年もまもなく終わりですね♪
こちらこそ、色々とありがとうございました。
来年もよろしくお願いします。
それでは、良いお年を。。

投稿: テンメイ | 2014年12月31日 (水) 03時11分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 紅白歌合戦&実写版ボクシング映画、軽~い感想♪ | トップページ | 14年12月と年間の全走行距離&メモリとHDDの空き不足 »