【数学】n進法の問題です

高校生用の質問にご利用ください。
フォーラムルール
新規投稿は質問のみとさせていただきます。
返信する
ゲスト

【数学】n進法の問題です

投稿記事 by ゲスト »

【数学】n進法の問題です。

以下の問題の途中経過が知りたくて質問しました。ちなみに、答は分かっています。
(1)八進数で表される数(77777)8がある。
(77777)8×2を八進数で表せ。

答 (177776)8


(2)九進法で表された8桁の数12345678に8を掛けると、9桁のどんな数になるか。

答 111111101


以上の2問です。
よろしくお願いします。
ゲスト

Re: 【数学】n進法の問題です

投稿記事 by ゲスト »

長くなります。

まず十進法からやってみましょうか。

例1.(23)10 ×6を十進法で表す。
答えとしては138ですね。では紐解いて見てみます。
先に計算を丁寧に行ったものを書いておきます。適宜見返しながら意味を理解して読み進めてください。
(23)10 ×6
=(2[×10]+3[×1])×6
=(2×6)[×10]+(3×6)[×1]
=([10]+2)[×10]+([10]+8)[×1]
=(1)[×100]+(2+1)[×10]+(8)[×1]
=(138)10

※”[]”でくくった数字は”位”を表すので分かりやすくするために書き分けています。普通の計算と同じように扱ってください。

上の式を見て頂いたところで、まず一の位の3に6を掛けることから考えましょう。
3×6=18です。このとき、筆算的に言えば18の内の10は「繰り上げ」を行うことになります。
ではなぜ「繰り上げ」を行うのか?
それはそのまま単純に、十進数が「10増やすと位がひとつ上がる数」と定義されるからです。
18の10の繰り上げは丁寧に書くと
18÷10=1あまり8
であり、18の中には10が一つ存在するので位上げの条件を満たしています。そして余りの8は位上げの条件を満たせないので元の位に取り残されるわけです。
十の位の2×6の部分でも同じことが言えます。
2×6=12であり、先程上がってきた1を12に足してから計算するので
(12+1)÷10=1…3
(”…”は”あまり”の意)
よって位上げの条件は1回分だけ満たしているので1つ桁を繰り上げて、余りの3は十の位に残します。答えは138というわけです。

ここまでの話が簡単だと思うでしょうか?実は何進法であっても、上記と同じ考え方を使えば同様にカンタンに計算できます。

次は二進法いってみましょう。
例2.(110)2 ×2 を二進法で表します。
(110)2は十進数に直すと(6)10ですね。
つまり、計算後の結果が(12)10であればちゃんと計算できたと確認できます。

まずは前提条件。
二進数は「2増やすと位がひとつ上がる数」と定義されることを忘れないでください。
(110)2 ×2について、

一桁目:0×2=0→0÷2=0…0
位上げの条件は満たさず(次の桁で+0) 、0が残されます。

二桁目:1×2=2→(2+0)÷2=1…0
位上げの条件を満たし(次の桁で+1)、0が残されます。

三桁目:1×2=2→(2+1)÷2=1…1
位上げの条件を満たし(次の桁で+1)、1が残されます。

四桁目:当然、位上げがあるので計算が必要です。元の式では四桁目は書いてないので0ですね。
0×2=0→(0+1)÷2=0…1
位上げの条件を満たさず(次の桁で+0)、1が残されます。

上記の計算を合算すると
(1100)2であり、これは(12)10を表すので正しく計算出来ています。
十進法の例の最初に書いてあった書き方でも見てみましょう。
(110)2 ×2
=(1[×4]+1[×2]+0[×1])×2
=(1×2)[×4]+(1×2)[×2]+(0×2)[×1]
=([2]+0)[×4]+([2]+0)[×2]+(0)[×1]
=(1)[×8]+(1)[×4]+(0)[×2]+(0)[×1]
=(1100)2
となります。

ここまで理解していただけたのなら、元々の問題もすぐに解けると思います。

わかるとは思いますが、触りだけ軽く書いて置きますね。
(1)
(77777)8 ×2
一桁目:7×2=14→14÷8=1…6
二桁目:7×2=14→(14+1)÷8=1…7




(2)
(12345678)9 ×8
一桁目:8×8=64→64÷9=7…1
二桁目:7×8=56→(56+7)÷9=7…0




分からないことがありましたら、またご質問よろしくお願いいたします。
返信する