プロが教えるわが家の防犯対策術!

こんばんは、質問です。

最近コンピューターに興味が出てきたのか、いろいろなことをしているのですが、突然、「16進数って何?」って、子供に聴かれました。
私も、何となくではわかっていたつもりだったのですが、いざしかも子供に聴かれると、ちょっと説明ができませんでした。
誰か、わかりやすく教えられる方、ぜひ説明、URL何でもいいので、知恵を貸して下さい。
以上、よろしくお願いします。

A 回答 (11件中1~10件)

某大学 電気電子工学科4年に属する者です。


順を追って説明させて頂きます。

普段我々が使用している表現「0,1,2,3,4,5,6,7,8,9」これは10進数と言います。
0~9までの10個の数字の組み合わせて使用するので「10進数」と呼ばれています。

次に、コンピュータなどが使用している表現は「1,0」の2つのみです。
これは"1"と"0"の2つだけなので、「2進数」と呼ばれています。
(実際のPC内部の回路では、電圧が高い状態を"1"、低い状態を"0"として、信号を伝達しています。)
10進数をそれぞれ2進数で表現してみます。

10進数:2進数
0:0000
1:0001
2:0010
3:0011
4:0100
5:0101
6:0110
7:0111
8:1000
9:1001
10:1010
(以下略)
変換計算の方法は今回の趣旨とは異なるため省略させて頂きます。
私の回答に捕捉を付けて頂ければ、改めてご説明いたします!

10進数を2進数で表す場合、0以上15以下までは4桁で表現できます。
しかし、16以上511以下を2進数で表す場合、8桁になってしまいます。
そのため、10進数の大きな数値を2進数に変換すると、どんどん桁が多くなっていってしまいます。


そこで考えられたのが、16進数という表現方法です。
16進数で用いる数字/記号は「0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F」です。
0~9の意味は説明するまでもありません。その数値の通りです。
A~Fの記号はそれぞれ、10進数の数値と同期しています。
Aの意味:10進数の"10"
Bの意味:10進数の"11"
Cの意味:10進数の"12"
Dの意味:10進数の"13"
Eの意味:10進数の"14"
Fの意味:10進数の"15"

0~9の10個の数値と、A~Fの6個の記号を組み合わせて表現するため「16進数」と呼ばれます。
変換計算の方法は今回の趣旨とは異なるため省略させて頂きます。
私の回答に捕捉を付けて頂ければ、改めてご説明いたします!


要するに、16進数は2進数を簡潔に表現するためのものです。

お子様にもそのようにご説明していただければ、間違いないです。


最後として参考までに、各進数の変化が分かる表示を挙げさせて頂きます。
これを御覧頂ければ、16進数が如何に2進数を簡潔に表現しているのかが分かって頂けるはずです。

10進数:2進数:16進数の順です。
0:0000:0
1:0001:1
2:0010:2
3:0011:3
4:0100:4
5:0101:5
6:0110:6
7:0111:7
8:1000:8
9:1001:9

10:1010:A
11:1011:B
12:1100:C
13:1101:D
14:1110:E
15:1111:F

16:0001 0000:10
17:0001 0001:11
18:0001 0010:12
19:0001 0011:13
20:0001 0100:14
21:0001 0101:15
22:0001 0110:16
23:0001 0111:17
24:0001 1000:18
25:0001 1001:19

26:0001 1010:1A
27:0001 1011:1B
28:0001 1100:1C
29:0001 1101:1D
30:0001 1110:1E
31:0001 1111:1F
32:0010 0001:21
(中略)
52:0011 0100:34
(中略)
108:0110 1100:6C
(中略)
291:1101 1011:DB
(以下略)


~~まとめ~~
10進数は人間が使用する表現。
2進数はコンピュータが使用する表現。
16進数は、2進数を簡潔に表現し、人間でも読み取りやすくするための表現。

この回答への補足

詳しく、しかも丁寧な回答、本当にありがとうございます。
変換計算などを補足すれば、書いていただけると言うことでしたので、差し支えなければでいいので、書いていただけないでしょうか?

補足日時:2012/08/31 15:59
    • good
    • 7

コンピュータの場合は、構成を考える上で1ビット単位より4ビット単位にした方が都合がよいことで、16進数が使われたのだと思います。

その方が機械語、CPU内のアドレス、データなどの構成を倍々にしやすいです。
    • good
    • 0

先ず、進数と桁が繰り上がるという意味を説明して置いて。



現在の(現時点での)コンピーターには、2進数での扱いが便利と言う事も理解して貰い。
コンピーターの中では、桁が大きく成っても問題無いが、人間に取っては扱い難いので
2進数を変換し易い(親和性が良い←と言う事を理解して貰う)数値に置き換える為に16進数と言う物が生まれた。
--
2進数の4桁が、16進数にすれば、1桁で済む為、人間の目から見て簡単に感じられると、…
    • good
    • 0

普段一番利用している10進数は10で桁上がり。


で、16進数は16で桁上がり。
ただこれだけのこと。
    • good
    • 1

16進数自体の説明は他の方がされているので、「なぜその様な数え方があるのか?」の点から子供が納得しそうな例を幾つか挙げたいと思います。


No.1の方が仰るように時間は60秒で1分、60分で1時間の様に60で別単位、別のもので一括りにしますね

(正確には違いますが)謂わば桁上がりさせている訳です
さらに24時間で1日、365日や12ヶ月で一年、100年で1世紀というように、その時々の扱いやすさ(時間は歴史的な背景もありますが)によって日常的に色々使い分けています

他にも
・365度で1周
・7日で1週
・12個で1ダース
なども同様です
    • good
    • 1

人は数を数える時に、両手の指10本の並びで一区切りします。


指折り数えて、次の器=桁に移す動作が凄く解りやすくて、
だから10進法が一番使っています。

これを、指点字(点字の縦列を伝える両者の指を重ね合わせて
リアルタイムで伝える技術で実際に有ります。
ここではそのイメージだけ言いたいので現実の事は述べません)
とかピアノの鍵盤みたいな、一度に押すパターンだけで伝える、
但し同時に押してる所が必ず判るから、パターン全てを使える。
という、デジタルの伝え方で試してみましょうか。

指一本だけだと、押すと離す、の2パターンで、次の器=桁に
移る合図(同期タイミング)をしてまた、2パターンです。
ゼロから伝えようとしたら、それと1しか意味がないので、
2を伝えるには、次の器=桁に1繰り上げた事にしていきます。
2で繰り上げだから、2進法、2進数と名前が付きます。

指が、デジタルの仕組みでビットの意味、という訳で
指二本に増やすと、まず両方離しているゼロから、
一本触っているのがさっきの1パターンと、
次の桁でなく指同士繰り上げした事にした、2のパターン、
(指の並びどちらを一番目二番目にするかは事前に決めておきます。
デジタル論理の図面などでビッグ/スモール・エンディアンと言う基準)
じゃあ両方触って、2+1=3のパターンも、有りになります。
これだと4で繰り上げ、4進法となります。

三本にしたら、4+3=7まで増えて8進法、それで良いです。
四本だと、8+7=15まで一桁で伝わる16進法、16進数ですね、
で、一桁で16なんて2ケタ費やしてたら混乱しますから、
10から15まで、アルファベットABCDEFで書いたりします。

アルファベットだけなら3ビット2桁の64個に割り当てても
使えるので、デジットとアナログのハイブリット電信メールインフラ、
テレックスの紙テープに孔を明けて記録するのが、6ビット。

それがコンピューターに応用されテレタイプライターになる時に、
7ビットなアルファベットASCII規格、更に合図のための偽文字を
挟んたり8ビット有る事にして、半角カタカナが使える時代の時には、
4ビットを横の並べで16とか24に増やしたハードウェアがおおいので、
プログラミングする仕事も、人力で16進数読み書きしてました。

リナックスとかのUNIX産物も当時のPDP11ミニコンピュータと、
あちこち理系の人が自分の道具造りで勉強した成果の一端なので、
16進法解ると、自力で書き換えれるのが凄く増えるんで広まった。
    • good
    • 1
この回答へのお礼

わかりやすい、へぇ~って思える回答、ありがとうございました。

お礼日時:2012/08/31 15:55

普通の数の数え方(10進数)はどうやって教えましたか?


時計の読み方(60進数、12進数、24進数)はどうやって教えましたか?
それらと同じように教えればいいと思います。
    • good
    • 0

よしゃ。

まず、「進数」という言葉の説明から始めましょう。
進数というのは、ざっくばらんに言うと、「数を数えてって、その数字になったら、桁が繰り上がる」という意味。でしょう。

10進数なら、0→1→2....7→8→9と数えてゆき、「10」になったら、桁が上がり(10の位が1つ増えて)、(1の位は)改めて0から数えるでしょう。(うーん、あまりにも当たり前すぎて逆に理解しづらいか)

んじゃ、もうちょっと他の例を持ってこよう。
たとえば、一年12か月。これは12進数と考えてもいいんじゃないかな。1か月→2か月→3か月...10か月→11か月→12か月。この次が、1年と1か月。んで、1年と2か月→1年と3か月...
うーん、あんまり良い例じゃないか。なんとなく、そんなかんじということで。ひとつ。

話を戻して、16進数。
これは、数字を数えていって、「16」になったら、桁が繰り上がる。というもの。
0→1→2....13→14→15と数えていって、次の16で桁が繰り上がって、1の位はまた0から数え始める。というもの。
ただ、これだと、「『じゅうご』の次は桁が繰り上がって『じゅうじゅうご』ですかい?『じゅうれい』ですかい?」という話になるので、16進数では「10」以降の数にアルファベットを使う。
だから、
0→1→2→3→4→5→6→7→8→9→A(ほんとは10)→B(11のこと)→C(12)→D(13)→E(14)→F(15)
と、数字が進む。
こうすれば、「16」になったとき、十の位が1つ繰り上がり、一の位が0に戻るので"10"になる。(習慣として『いちぜろ』と読む)
どんどん数字が増えてゆけば、"110"(『ひゃくじゅう』じゃないぞ。『いちいちぜろ』だ。10進数だと272)とか、"A3FC"(『えいさんえふしー』と読む。10進数で41980)とかそんな数にもなってゆく。

好奇心旺盛のお子さんなら、「なんでコンピュータは10進数じゃなくて16進数なの?」という話になると思うけど、まぁ、それは、また別の質問で。(四本の旗を立てたり下したりすることで0から15の数字を表すことができる・・・みたいな話になると思う)

とりあえず、「16進数っちゅうのは、0から15まで数えていって、16になったら桁が繰り上がる数え方」ということで。
    • good
    • 0
この回答へのお礼

一番はじめからの丁寧な説明ありがとうございました。

お礼日時:2012/08/31 15:53

すでに子供にも判り易い回答がありますが、「進数」で検索するといろいろ出てきます。


コンピュータ関係でしたら、二進数、八進数、十六進数を説明してあげると親の権威が保てるかも。(^_^)
「進数」で検索して下記などを参考にされてください。
http://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html
http://net-newbie.com/tcpip/radix.html
「60進数」「12進数」とか「6進数」なども調べる面白いですし、時計とか暦の話に発展させることもできますね。
    • good
    • 0

16進数は、文字通り16ごとに桁がひとつ上がる数の数え方です。



人間がよく使うのは10進数です。これは0からスタートして9までが1桁目です。それが一つ増え10となった時、桁が2桁になります。10って二桁ですよね?

対して16進数は0から15までが1桁で表せる数となります。しかし、15というのはすでに2桁になってしまってますよね?15を1桁で表すにはどうしたものかと考えた結果、1桁で表せる最大の数字である9とアルファベットを組み合わ褪せて15を1桁で表すことにしました。16進数では、0~9、そして10からはA,B,C,D,E,Fを使って表します。Aが10進数の10ということになります。そして、Fまでいって一つ増えたら桁が上がり10となります。この時、10となりますが10進数の10とは意味合いが異なります。なので、「じゅう、とお」などとは言いません「イチ・ゼロ」というのが一般的です。

他にも、コンピューターの根幹をなす2進数もあります。これは0と1の2つの数字しか使いません。1桁で表せる数は0が最小で1が最大です。なので、2になろうとした時に桁上りします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!