- ベストアンサー
16進数の解き方について
現在16進数の勉強をしているのですが、10~15の数字が16進数の場合、a~fの文字になります。ですが、私にはなぜこうなるのか理解できず、A+1Fといった足し算の計算でもどういうふうに考えて解けばよいのかわかりません。 詳しくおしえて頂けたらと思います。よろしくお願いします。
- みんなの回答 (15)
- 専門家の回答
質問者が選んだベストアンサー
私も同様に理解出来ない事があり、今は以下のように考えています。 例えばここに大量の1円玉があるとします。それを数える時、普通はまず1円玉10枚を重ねるでしょう。 次に10枚重ねた山をいっぱい作って、その山が10個になったら一まとめの塊にするでしょう。 そうして全ての1円玉で山を作り終えた時、10枚の山の10個の塊(100枚)が9個、塊に入っていない10枚の山が5個、山になっていない1円玉が7枚あったとすると、1円玉は957枚です。 これは自然と10進数で1円玉を数えているからです。 次に、16進数で考えてみます。1円玉を16枚ずつ重ねた山にします。 そしてそれをいっぱい作って山を16個ずつの塊にします。全部山にし終えた時、16枚の山が16個の塊(16×16=256枚)が3個、塊に入っていない16枚の山が11個、山になっていない1円玉が13枚あったとすると、16進数で百の位は塊の数の3、十の位は残りの山の数の11、一の位は残りの13となります。 ただし、このままでは3桁で数字を表現できないので、11を表す1桁の数字と13を表す1桁の数字が必要になり、9の次をA、次をBといったように15を表すFまでを決めます。 (10進数では10より1個少ない9までの一桁の数字が有れば良いように、16進数では16より1個少ない15までの一桁の数字があれば良いのです) そうすると、先ほどの1円玉は、16進数で、3BDとなります。 このようなイメージで考えると理解できませんか? 私は16進数を考える時、一旦このように、1円玉を重ねたり塊にしたりしたイメージを浮かべてから考えています。
その他の回答 (14)
- pbforce
- ベストアンサー率22% (379/1719)
#3です ごめんなさい間違ってしまいました #6さんフォローありがとうございます。
再度#10です >1110はDですですので、けいさんの答えはd3f7>の誤りです。失礼しました。 1101はDですの誤りです。ちょっと慌てました。 とのように16進数はなれないと、間違いやすいです。 ごめんなさい
- jojo_dio
- ベストアンサー率41% (24/58)
コンピュータは昔から電気信号のON/OFFで動作しています。 だから数字を数えるときも1:ON、0:OFFの信号を並べて計算しています。 これが情報の最小単位1ビット(bit)です。(ゲーム機でおなじみの言葉ですね) では二つ並べると 00 01 10 11 で4つしか数えられない では三つ並べると 000 001 010 011 100 101 110 111 で8種類しか数えられない 4BIT並べると 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 これでやっと0~9まで数えられて更に15まで数えれることになります。 数字は0123456789までしかないので10~15の部分はABCDEFで表現しているだけです。 あとは慣れでA=10とかF=15というふうにだんだん、置き換えれるようになると思います。 A+1Fなら、F(=15)があと+1で繰り上がるからA(=10)から-1して29になります。
#10です 自己フォローです 1110はDですですので、けいさんの答えはd3f7の誤りです。失礼しました。
>16進数の場合、a~fの文字になります。 とありますが、16進数の場合a~fは、文字ではなく数字なのです。10から15までを一桁であらわす数字がないので、a~fが10~15と世の中で決めているだけです。 ですから、自分の中では10進数の10~15を◎、△、□、●、▲、■としてもよいわけです。 そうすればA+1Fは、◎+1■となり、答えは29になります。 どうしても、理解できないのであれば、A+1Fを(10)+(1)(15)とすればよいだけです。 この時の計算ではまず一桁目の(10)+(15)を計算すると、繰り上がった(1)と一桁目に(9)が残ります。 *(つまり10進で足した25のうち16が繰り上がり一桁目に9が残ります) それで答えは(2)(9) もう少し違う角度で理解しようとすれば、16進数が2進数の延長戦上で存在していることを考えましょう 2進数は”0”と”1”のみで表されます。 10進の1~9は、0001、0010、0011、0100、0101、0110、0111、1000、1001となります更に16進数のa~f(10進数の10~15)は、1010、1011、1100、1110、1111となります。 ここで気づかれたと思いますが、2進数の4桁が16進数の一桁になるのです。 16進数のfは、10進数で15、2進数で1111ですので、 16進数の10は、10進数で16、2進数で10000となります。 つまり2進数を10進数で表すと、それなりに計算が必要ですが、16進数だとすぐ表すことができるのです。 2進数で1101001111110111は10進数だと 1+2+4+16+32+64+128+256+512+4096+16384+32768 = 54263、と計算に時間がかかりますが、16進数だと 2進数の4桁づつを変換して(1101=E、0011=3、1111=f、0111=7)E3f7となります。
- nagiha
- ベストアンサー率18% (300/1631)
学生のころ習った方法ではとりあえず10進数へ直してから足してそこからまた16進数へ変えればいいと習いました。
- ymmasayan
- ベストアンサー率30% (2593/8599)
>10~15の数字が16進数の場合、a~fの文字になります。ですが、私にはなぜこうなるのか理解できず、 a~fは単なる約束ですから覚えこむより仕方ありません。 A+1fは0A+1f=19=25 0A 1f --- 19・・・(25)10
- c_tech
- ベストアンサー率51% (129/251)
子供の頃から数の数え方を10進法で習ってきたために、ややこしいと思いますが、10進法の考え方も切り換えてみるといいと思います。 10進で、『9』の次は『10』という覚え方をしているので苦労するわけで、10で進むと書く10進は、10になる時に桁がひとつ繰り上がり、下一桁が0にクリアされ10(イチゼロ)となるわけです。 これと同じように16進の場合、10進で言う16になった時に桁がひとつ上がり、下一桁が0にクリアされます。 そこで、アルファベットの件ですが、 10進 16進 9 → 9 10 → a 11 → b 12 → c 13 → d 14 → e 15 → f 16 → 10 (ここで繰り上がる) 17 → 11 という具合になり、10進の10を16進ではまだ繰り上がってないので、10と言う事は出来ず、1桁で表現できるアルファベットに続いているわけです。 ちなみに、16進では、ジュウ、ジュウイチとは言わずに イチゼロ、イチイチと言います。 すでに、出ていると思いますが、16進を10進に戻すには、2桁目に16を掛け、1桁目を足せばいいので、『1F』は、16×1 + F(10進の15) = ○○ となりますね。 慣れるまでは、10進にして計算したあと、また、16進に変換してもいいと思います。 16進を4桁の2進にして足し算すると簡単なのですが、まだ、考え方の切り替えが出来てからがいいかも知れませんね。
- fuelempty
- ベストアンサー率13% (100/761)
#3さんへ 繰り上がるのは16からです。 15(f)までは一桁。 10進でも16進でも2進でも 0は同じです。
- fuelempty
- ベストアンサー率13% (100/761)
16進数でA~Fは10~15に対応します。 が、なぜ、A、B、C、D、E、Fを使うかと言いますと値が「F」になって初めて繰り上がりとなります。(Fになるまで繰り上がれない。10進数でも 9を超えないと繰り上がらないですよね) で、A+1Fですが、この場合は、「0A」+「1F」ですので、 「(0*16)+10」+「(1*16)+15」 となります。 括弧内の16じゃない方の数字は「」内の左側の数字 (繰り上がった方、16の位の値) あとはそれぞれ、10進数に変換。 2進数に変換した方がわかりやすいかな? 答えは10進で41。16進で29。 この16進を上記の式に当てはめると、 「(2*16)+9」で41。
- 1
- 2