基礎からわかる!パソコン入門・再入門 / 無料パソコン教室・基礎知識・Word・Excel・PowerPoint

2進数と10進数と16進数 ~ 相互比較と変換 ~

ジタルとアナログ編の デジタルデータと2進数 で解説のとおり、コンピュータが理解できるのは0と1の2進数のみです。

したがって、すべてのデータは2進数に置き換えられて処理されており、2進数について学習しておくことは理解を深める上でも重要になっていきます。

本項では、その2進数と私たちが普段扱っている10進数、膨大な桁数になる2進数をある程度簡略化して、プログラミング等に利用される16進数について、それらの比較と相互変換について解説したいと思います。

なぜ16進数が利用されるのかというと、2進数では扱う桁数が膨大なものになるという理由と、16進数は2の乗数(2の4乗)であるため、コンピュータが処理し易いためです。

まず、それぞれを比較した対応表をみてみましょう。

2進数と10進数と16進数の対応表
2進数 10進数 16進数 2進数 10進数 16進数
0 0 0 10001 17 11
1 1 1 10010 18 12
10 2 2 10011 19 13
11 3 3 10100 20 14
100 4 4 10101 21 15
101 5 5 10110 22 16
110 6 6 10111 23 17
111 7 7 11000 24 18
1000 8 8 11001 25 19
1001 9 9 11010 26 1A
1010 10 A 11011 27 1B
1011 11 B 11100 28 1C
1100 12 C 11101 29 1D
1101 13 D 11110 30 1E
1110 14 E 11111 31 1F
1111 15 F 100000 32 20
10000 16 10 100001 33 21

それぞれの数の特徴は次のようになります。

10進数

0~9の10個の数を使い、繰り上がりは、10のべき乗になります。1は100、10は101、100は102、1000は103・・・という具合です。

例えば、「56513」という数字を10進数の式になおすと、

104×5+103×6+102×5+101×1+100×3

となり、「(10000×5)+(1000×6)+(100×5)+(10×1)+(1×3)=56513」となります。10進数は私たちが普段使っている数字ですが、コンピュータ処理には向いていません。

2進数

0と1の2個の数を使い、繰り上がりは、2のべき乗になります。1は20、10(10進数では2)は21、100(10進数では4)は22、1000(10進数では8)は23・・・という具合です。

例えば、「11010」という数字を2進数の式になおすと、

24×1+23×1+22×0+21×1+20×0

となり、「(10000×1)+(1000×1)+(100×0)+(10×1)+(1×0)=11010」となります。ちなみに10進数に変換すると、「(16×1)+(8×1)+(4×0)+(2×1)+(1×0)=26」となります。逆に10進数から2進数の変換方法については後述します。

16進数

0~9の10個の数とアルファベットのA~Fの6個の文字を使い、計16個の英数字を使います。繰り上がりは、16のべき乗になります。1は160、10(10進数では16)は161、100(10進数では256)は162、1000(10進数では4096)は163・・・という具合です。

例えば、「CA125」という数字を16進数の式になおすと、

164×C+163×A+162×1+161×2+160×5

となり、「(10000×C)+(1000×A)+(100×1)+(10×2)+(1×5)=CA125」となります。ちなみに10進数に変換すると「(65536×12)+(4096×10)+(256×1)+(16×2)+(1×5)=827685」となります。逆に10進数から16進数への変換方法については後述します。

16進数はアルファベットが用いられるため、慣れないと扱いづらい部分がありますが、2進数よりはるかに扱い易いはずです。2進数を16進数に変換するには、2進数の下位から4ビットずつ区切って、その4ビットを16進数で表します。

具体的な方法については、2進数、10進数、16進数の相互変換を実際にやりながら学習していきましょう。まずは、2進数と10進数の相互変換です。

2進数から10進数への変換

先ほどの例と同様に、2進数を2進数の式になおして計算すれば算出することができます。例えば「1101101」を10進数に変換してみます。

2進数の下位から、20、21、22・・・を1もしくは0と掛けて、

(26×1)+(25×1)+(24×0)+(23×1)+(22×1)+(21×0)+(20×1)

を計算します。したがって「64+32+8+4+1=109」となります。つまり、2進数「1101101」は10進数「109」で表すことができます。

10進数から2進数への変換

では逆に、10進数「109」を2進数に変換してみましょう。「109」から上の式がすぐに算出できたら問題なく答えは出ますが、4桁以上の10進数を扱うようになるとかなり困難になってきます。

実は簡単な方法があるのです。それは、10進数を「2」で割り、その商が1になるまで割って行きます。その余りを最後から順番に並べると、2進数に変換することができます。

10進数から2進数への変換イメージ

この方法であれば、何桁の10進数であっても簡単に2進数へ変換することができます。

2進数から16進数への変換

2進数を16進数で表すには、先述のとおり、2進数の下位から4ビットずつ区切って、その4ビットを16進数で表します。つまり、2進数を4ビット束ねると、「0000~1111」で24=16通りの並び方があるために16進数が用いられるわけです。

そして、束ねた4ビットを10進数に変換して、さらにそれを16進数に変換します。先ほどの例と同様に「1101101」を16進数に変換してみましょう。

まず、下位から4ビットに区切って、(0110)と(1101)に分けます。上位の「110」が3ビットになりますが、先頭に0を付けて「0110」の4ビットにします。

(23×0)+(22×1)+(21×1)+(20×0)=6
(23×1)+(22×1)+(21×0)+(20×1)=13

となり、10進数の6と13は、16進数ではそれぞれ「6」と「D」となります。つまり、2進数「1101101」は16進数「6D」で表すことができます。

16進数から2進数への変換

では逆に、16進数「6D」を2進数に変換してみましょう。工程を逆にするだけなので、まず16進数を10進数に変換し、10進数から2進数に変換します。

したがって、16進数の6とDは、10進数ではそれぞれ「6」「13」となり、それらをそれぞれ2進数に変換して、「0110」と「1101」となります。最後にそれらを結合して先頭の0を省略して「1101101」となります。

もう一例として、「CA125」を2進数に変換すると、まず10進数で「12・10・1・2・5」となり、2進数では「1100・1010・0001・0010・0101」で、「11001010000100100101」に変換することができます。

10進数から16進数への変換

10進数から2進数への変換と同様に、10進数を「16」で割り、その商が15以下になるまで割って行きます。その余りを最後から順番に並べると、16進数に変換することができます。

例として「827685」を16進数に変換してみましょう。

10進数から16進数への変換イメージ

この方法であれば、何桁の16進数であっても簡単に10進数へ変換することができます。

16進数から10進数への変換

先述した例と同様に16進数を16進数の式になおして計算すれば算出することができます。例えば「CA125」を10進数に変換してみます。

16進数の下位から、160、161、162・・・を掛けて、

(164×C)+(163×A)+(162×1)+(161×2)+(160×5)

を計算します。したがって「(65536×12)+(4096×10)+(256×1)+(16×2)+(1×5)=827685」となります。

これらがそれぞれの一般的な変換方法になります。この他にも様々な計算方法があるようですが、そのあたりの詳しい解説は割愛します。

こうした知識は、プログラミングや情報処理試験を目指す方には必須の知識になります。

ページトップへ戻る


関連情報&オススメ

『ニューズウィーク』は『タイム』とともに世界的に購読されているアメリカのニュース雑誌です。日本に関する記事は少ないですが、世界的な視点で編集されており、国際社会の様々な価値観を知ることができます。

様々な意見を取り上げ、いい意味で画一的でないので、私は、毎週読んでいくうちに「自分自身の考え」を持てるようになりました。国際情勢や経済、地域紛争などについて、自分がその歴史や背景、登場人物を認識していて意見できるくらいの知識を得ることができるようになったと思います。

読み始めた当初は、ほとんどのことが理解できないくらい難しい内容に感じました。たとえば、円高や金利などの経済の仕組みや国際社会の地政学的な背景などの基礎知識がなかったからです。しかし、「毎週全部の記事を読む」「わからないことはネットで調べる」と自分に決め、一年間読み続けたらなんとか理解できるようになり、記事を読むのが本当に楽しくなりました。

また、日本のメディアにはない視点に立って書かれている記事が多いので、感心させられることや考えさせられることも多々あります。例えば、日本では「クジラ食文化」は断固として守らなければならないという視点で記事が書かれますが、「クジラを食することを文化としてる日本人はどれだけいるのか」という視点から記事が掘り下げられていきます。

そこには、画一的な報道からでは見えない「気づき」があります。多角的な視点を持つことで、ニュースの裏に透けて見える矛盾や戦略を感じとる皮膚感覚が身についてきたように思います。

さらに、各国の元閣僚や大物財界人、ビッグスターの寄稿も多く、デービット・ベッカムが札幌でPKを決めたときの気持ちをつづったコラム(その前回のワールドカップで退場になった因縁のアルゼンチン戦)で、「もう、大丈夫だと思った」という言葉は今でも印象に残っています。

先進国の世界的不況や中東の動乱、そして東日本大震災における援助や報道など、世界の中で、国際社会と複雑に絡み合う時代に生きていることを教えてくれます。ひとつ上の目線と価値観を与えてくれた雑誌です。

決して安くはありませんが、1年購読は18,520円(一冊定価460円)です。

ページトップへ戻る

更新履歴

2009年9月7日
ページを公開。
2009年9月7日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2014年5月23日
内容修正。

ページトップへ戻る

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

2進数と16進数
http://tfusvsun.tfu.ac.jp/mko/CASL2/vol1/right.html
16進数変換・文字コード
http://homepage1.nifty.com/mstak/Computer/JavaScript/program-form2.html

ページトップへ戻る