上に戻る
資料1.16進数について
 まずは、2進数から。
 2進数は数を0と1を用いて表します。
 例…… 101100
 一番右が『1の位』、その左が『2の位』、続けて『4の位』『8の位』……と続きます。
 普通使っている10進数に変換するには、『位の数』が1である『位』を足し合わせればいいです。
 上の例では、『4の位』『8の位』『32の位』が1であるので、4+8+32=44ですね。
 本当は、*が掛け算、^が指数を表すとして、
 0*2^0 + 0*2^1 + 1*2^2 + 1*2^3 + 0*2^4 + 1*2^5 = 44
 です。

 16進数は、数を0〜1と、A,B,C,D,E,Fを用いて表します。
 A=10,B=11,C=12,D=13,E=14,F=15です。
 例……3A5C
 一番右が『1の位』、続けて『16の位』『256の位』『4096の位』……です。
 これを10進数にするには、それぞれ、『位の数』×『位』としたものを足し合わせます。
 先ほどと同じように、*が掛け算、^が指数を表すとして、
 (C=12)*16^0 + 5*16^1 + (A=10)*16^2 + 3*16^3 = 14940
 です。

 コンピュータを扱うとき、16進数がよく出てきます。何故でしょう。知りません(爆)
 ってことで、以下は予想です^^

 コンピュータではデータを全て電圧のハイ/ローで表すらしいです。それを0と1に当てて置きます。(どっちが0でどっちが1だかは知らんが……)
 そうなると、延々と繋がったデータは、以下の様に表されるでしょうか……

000101101010110100110010010101010101110101101011101011101010110010010011……

 なんつーか……お世辞にも見やすくないです。
 コンピュータの仕事としても0や1単体である意味があるというより、いくつかの01の並びで意味を成す場合が多いんじゃないでしょうか……
 そんなわけで、見易さも考慮して、いくつかずつ、この01を区切ってみます。
 ハードウェアの都合上、たぶん2の乗数個で区切ったほうがいいのでしょう……
 ということで、8つずつ区切ってみましょう。なぜ8個か。8個ならアルファベットを1つずつ当てても足りるから……
00010110 10101101 00110010 01010101 01011101 01101011 10101110 10101100 10010011……
 このように8つの01の組が『バイト』です。その一つずつは『ビット』。
 ちなみに、4ビットは1『ニブル』といわれているらしい。
 8ビット=2ニブル=1バイト。
 それぞれが、8桁の2進数に区切られたわけです。これを10進数に直してみます。
 22 173 50 85 93 107 174 172 147
 まぁ、最初と比べると、かなり見易くなりました。3桁以内で表すことが出来ます。しかし、16進数に直すとどうなるでしょう……
 16 AD 32 55 5D 6B AE AC 93
 2桁以内で表せるため、よりコンパクトです……しかし、それだけではありません。
 各桁が、4ビット分の情報を表しているのです。
 例えば、最初の16ですが、これは 1 と 6 が、 0001 と 0110 を表しているともみれます。
 そんなこんなで、コンパクトに表示でき、コンピュータにとって重要な2進数により近い、16進数をよく使うのではないかと思います。
(10)2006年12月24日 プレさ兵衛
inserted by FC2 system