「16進法」の解説~2進法、10進法との相互変換、ウェブカラー
今日は年末最後の数学系記事として、またプログラミングのシリーズをアッ
プする予定だったが、PCトラブルで時間をとられてしまったので、もっと簡単
に書ける話にしとこう。どこかで耳にしたことはあっても、具体的にはなかな
か縁遠い、「16進法」の簡単な説明だ。
2進法の桁数を少なくする「記数法」(数を記す方法)として、時々使われて
るのは知ってたけど、実際に計算したり書いたりしたことは一度も無かった。
ところが先日、ドラマ記事を書く時に、「ウェブカラー」(=ネット上の色)とい
うものの指定で16進法が使われてるのを目にしたのだ。縁遠かったものが、
急に身近に感じられたし、なるほど・・と納得もできた。
☆ ☆ ☆
身近で簡単な例として、
ウィキペディアで「緑
(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乗通りという意味だ。
ちなみに典型的な赤(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進法に変える操作を見る。
まず、6を2で割って3、余り0。これ
を左のように、上下逆にした割り算
の筆算みたいにして書く。
次に、3を2で割って1、余り1。一
番下に1が来たら、そこで終了。
左下から右上に数を見て、110
が答。2進法で表された2進数
であることをハッキリさせる
ために、(110)₂ などと書く。つまり、 (6)₁₀ =(110)₂。
ちなみに、110を「ひゃく・じゅう」と読みたくなるが、理論的には誤りだ。それ
は、百の位や十の位を用いる十進法の読み方であって、二進法の場合は仕
方なく、「イチ・イチ・ゼロ」とでも読む所だろう。
逆に、二進法から十進法への変換は、意味を考えれば簡単だ。二進法では、
ケタが一つ上がるたびに2倍の数(または位)を表すから、
(110)₂ = ( 1×2²+1×2¹+0×2⁰ )₁₀
= (6)₁₀
この場合、二進数の1ケタ目が0だから関係ないけど、2⁰=1 なので念のた
め。テストだと、計算間違いしやすいポイントになる。
☆ ☆ ☆
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進法にしてもいいが、直接やる方が遥かに便利。
2進法の
110110111を
例にとる。右から
4ケタずつ、つま
り16(2の4乗)
ずつ区切って、
1区画ごとに16
進法の数へと直
せばいい。
上では一旦、それぞれの区画を10進数に直してるが、慣れれば直ちに一番
下の答えが書けるだろう。(1 11 7)hex、つまり、(1B7)hex。たかが16通
り覚えるだけで、瞬間的に変換可能。
逆に、16進数を2進
数に直接変換する
には、左のようにす
ればいい。
それでは、今日は
この辺で。。☆彡
(計 2518字)
| 固定リンク | 0
「パソコン・インターネット」カテゴリの記事
- DELLノートパソコンのバッテリー回収、公式サイト経由の宅配は不便だから、電気店へ持参&11km走、好調♪(2024.12.04)
- 25歳の自民党新議員・大空幸星の「イシュー化」(争点化)という政治的表現、英語圏では普通か&雨で連続ウォーク(2024.10.30)
- はじめてのmacOSアップデート、時間40分で 13 Ventura から 14 Sonoma へ、最新は 15 Sequoia だけど♪&7km走(2024.10.16)
- 10年ぶりのヤフオク、安い物を落札したらヤフーショッピング商品券を貰って得したけど、出品者とのやり取りは機械的(2024.09.18)
- 1ヶ月ぶりに壊れかけの Windows PC を使ったらアップデートだけで2時間弱!&少し気温低下で15kmジョグ(2024.09.17)
「数学」カテゴリの記事
- 積立預金2、今でも申し込める高島屋「スゴ積み」、実質年利15%の計算式と解説&今季ハーフ3本目、まずまず♪(2024.12.06)
- ヤマダデンキの幻の積立預金、実質年利18.5%(!)の計算式と解説&7kmラン&計14kmウォーク(2024.12.03)
- パズル「絵むすび」32、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2024年11月9日)(2024.11.09)
- 中国アリババ世界数学コンテスト2023予選、火の玉のコントロール、球状閃電(球電:ball lightening)の問題と解説(2024.11.05)
- NOT回路(ゲート)、AND回路、OR回路を組み合わせた設計、論理回路の問題の解き方、考え方~ 高校『情報 Ⅰ 』(2024.11.02)
コメント
2進法、8進法、・・,16進法・・とそれとなく理解出来たとき、では、何進法が一番効率的なんだろう?と考えて見るのも楽しいですね。
今年も楽しい記事、沢山読みました。ありがとうございました。来年も宜しくお願い致します。
良いお年をお迎えください。
投稿: gauss | 2014年12月30日 (火) 14時07分
> gauss さん
こんばんは。毎度どうもです。
「効率」を比較するのは、一般に難しいですね。
「率」だから、「割られる量」と「割る量」が
あるわけですが、それらの組合せ方も問題だし、
特に「割られる量」の計算が厄介。
「電力」の選択の際にも同様。
原発とは単なる電力と放射能の施設ではなく、雇用、
産業、環境、温暖化、科学技術、防衛とも関わるもの。
とりわけ、最後の2つの計量は重要かつ厄介で、
まだあまり語られてない論点でしょう。。
話を戻すと、そもそもコンピューターにとって、
今後も2進法や16進法が効率的なのかどうか。
人間はずっと変わらず10進法ですからね。
人間は手の指が10本だからって話もありますが、
コンピューターのハードやソフトが変わるにつれて、
何が最適なのか、変わって来るような気がします。
例えば、九九の答えを出すだけなら、10進法入力に
対して、10進法の答の丸暗記を出力してもいいはず。
ともあれ、今年もまもなく終わりですね♪
こちらこそ、色々とありがとうございました。
来年もよろしくお願いします。
それでは、良いお年を。。
投稿: テンメイ | 2014年12月31日 (水) 03時11分