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

10進法の数をnで割っていき、余りを並べることで求めたい数字を導き出すことが出来ますが

なぜそうなるのかが、よく理解できません。

n進法 → 10進法  の説明は、検索すると、わかりやすくその理屈が説明されているのですが
10進法 → n進法 は「割っていき並べればその数字になるんだ」 としか、どのページでも説明されておらずいまいち理解が出来ません。



10進法の27という数の、「2進法での数の動き」 を 10進法表記で表すとこのようになっている。

2^4×1 + 2^3×1  + 2^2×0 + 2^1×1 +2^0×1  =27 (10進法表記)

2進法表記ではこのようになっている。

10000×1  +  1000×1 + 100×0 + 10×1 + 1×1 = 11011 (2進法表記)


このように、10進法表記でも2進法表記でも、各位の値は同じなので
位を外して、各位の値だけを並べれば27の2進法表記である 10011 を導き出すことが出来る。

位の数で割っていくことで各位の値だけを抽出することが出来る。


このように理解するしかないのでしょうか?
よろしくお願いします。

A 回答 (7件)

27 という数字を2進法で表すというのは、


32,16,8,4,2,1 の足し算の式で表現するのと同じような事です。

以下の手順で求められます。

1. 27 に 2^5=32 という要素があるか?→ない→2^5の桁は0 (1)
2. 27 に 2^4=16 という要素があるか?→ある→2^4の桁は1 (2) 27-16の残りは11
3. 11 に 2^3= 8 という要素があるか?→ある→2^3の桁は1 (3) 11- 8の残りは 3
4. 3 に 2^2= 4 という要素があるか?→ない→2^2の桁は0 (4) 3- 0の残りは 3
5. 3 に 2^1= 2 という要素があるか?→ある→2^1の桁は1 (5) 3- 2の残りは 1
6. 1 に 2^0= 0 という要素があるか?→ある→2^0の桁は1 (6) 1- 1の残りは 0

(1)~(6)を並べると 6桁ですが 011011 を得られます。

27 = 2^5 x0 + 2^4 x1 + 2^3 x1 + 2^2 x0 + 2^1 x1 + 2^0 x1 という事です。


質問文>10進法の数をnで割っていき、余りを並べること
とは、上の手順を逆に行っていくことです。

1. 27を2で割る→商13余り1→ 2^0=1 の要素を持つので2進数の最下桁は 1。
2. 13を2で割る→商 6余り1→ 2で割るのが2回目なのでここでの余りは2^1=1 の要素を持つので2進数の下から2桁目は 1。
3. 6を2で割る→商 3余り0→ 2で割るのが3回目なのでここでの余りは2^2=1 の要素を持たないので2進数の下から3桁目は 0。
4. 3を2で割る→商 1余り1→ 2で割るのが4回目なのでここでの余りは2^3=1 の要素を持つので2進数の下から4桁目は 1。
5. 1を2で割る→商 0余り1→ 2で割るのが5回目なのでここでの余りは2^4=1 の要素を持つので2進数の下から5桁目は 1。
6. 商が0になったのでおしまい。

余りを逆順に並べると 11011で、求める2進数。

「2で割る」のが2回なら「2^2=4で割る」ということ、
「2で割る」のが3回なら「2^3=8で割る」ということをうまく利用してます。
下の桁から行えば、「2で割る」を繰り返し、商が0になったらやめればいいので計算しやすいのです。
上の桁からだと初め幾つで割ればいいのか即断しにくいし。

この回答への補足

ありがとうございます。
上側の説明は理解できたのですが
やはり割る方法のほうが理解できません。


27÷2=13余り1

というのは
27の中に2がいくつあるか→2が13個 

             1が1個

ということを表していますよね。
1が1個だから1桁目が1で決まる。

そして次は
13を2で割りますが
他の14の部分はなぜ消えてしまうのでしょうか。


この考え方が違うのでしょうか?
上側の説明の逆のことをしている、という
逆の操作がどういうことを指しているのかがよくわかりませんでした。

よろしくお願いします。

補足日時:2013/10/10 21:13
    • good
    • 0

No.1です誤記してました訂正です。



誤>6. 1 に 2^0= 0 という要素があるか?→ある→2^0の桁は1 (6) 1- 1の残りは 0
正>6. 1 に 2^0= 1 という要素があるか?→ある→2^0の桁は1 (6) 1- 1の残りは 0
    • good
    • 0

「nになったら桁上がりが生じる」を押さえてますか?



最下位の桁は0~(n-1)しかありません。
じゃあ桁上がりとは言っても「それがn以上では無いのか?」を確認しなければなりません。
    • good
    • 0

No.1,2 です。


すみません。No.1後半が他にも間違ってたので訂正すると共に少し違う書き方を。

1. 27を2^1=2で割る→商13余1→ 要素 2^0=1 を持つ→2進数の最下桁は 1。次は27-1=残り26について考える。
2. 26を2^2=4で割る→商 6余2→ 要素2^1=2 を持つ→下から2桁目は 1。次は残り26-2=24について考える。
3. 24を2^3=8で割る→商 3余0→ 要素2^2=4 を持たない→下から3桁目は 0。次は残り24-0=24について考える。
4. 24を2^4=16で割る→商 1余8→ 要素2^3=8 を持つ→下から4桁目は 1。次は残り24-8=16について考える。
5. 16を2^5=32で割る→商 0余16→要素2^4=16 を持つ→下から5桁目は 1。商が0になったのでおしまい。
    • good
    • 0

10進数を10で割ると、小数点が左へ移動する、ということは、小学校でやったと思います。



12345678 ÷ 10 = 1234567.8

これを整数部だけ残せば

1234567
で、余りが
8
です。

この 8 は、12345678の一番下の位の数です。

次に,1234567 ÷ 10 をすれば、
123456
が残って
7
が余りとして出てきます。これは、下から2番目の位の数です。
以下、 割られる数が0になるまで繰り返せば、10進整数の全ての位の値がわかります。

この性質は、一般に n進数をnで割ったときに言えるものです。


n進整数数は、 a_0 * n^0 + a_1 * n^1 + .... + a_m * n^m という値を
{ a_m, ... , a_1, a_0 } とa_iだけで表現したものです。
ここで a_i は 0≦a_i<nの整数、 n≧2の整数、mはm≧0の整数です
これをnで割れば
a_1 * n^0 + a_2 * n^1 + .... + a_m * n^(m-1) あまり a_0 となります。
つまり、商は{ a_m, ... , a_1} と一番下の位を除いた数となり、一番下の桁が余りになります。

続いて、上記の商を n で割れば { a_m, ... , a_2} 余り a_1 となります。先程の余りの a_0 と並べると { a_1, a_0 } となります。
続いて、上記の商を n で割れば { a_m, ... , a_3} 余り a_2 となります。先程の余りの列にと並べると {a_2, a_1 , a_0 } となります。
以下、商が0になるまで繰り返せば、 余り の列は { a_m, ... , a_1,a_0} となります。
    • good
    • 0

2進法を例に取るからわかりにくいのではと思います。


例えば60進法(時間)で考えてみると、
13515秒って何時間何分何秒でしょうか?
小学校レベルの問題でしょう。

13515秒/60秒=225あまり15
なので、13515秒=225分と15秒
225分/60分=3あまり45
なので、225分=3時間45分
したがって、13515秒は3時間45分15秒とするはずです。

13515秒が225分と15秒になりましたが、この225分は当然225分×60秒=13500秒です。

これと同じことをしているに過ぎません。
    • good
    • 0

一度小学生低学年に戻ったつもりで数の数え方について考えてみましょう。



例えばとてもたくさんのもの(米粒とか小豆とか)を数えてみましょう。ここでは5678個あるものとします。
その場合
1,2,3,4,.....,1000,...,2500,....,5678
とかのような数え方、普通はしないと思います。途中でどこまで数えたか忘れたりする可能性が高い。(日本野鳥の会の人であれば間違わずにカウントできるかもしれませんが)

小学校1年生のレベルだと
まず、10個数え上げ一つの塊にします。
この塊をたくさん作ります。最後に8個残ります。

次にたくさんできた10個分の塊を数えて10個そろったらそれを一つの塊にします。その塊は100個のもので構成されます。
このように100個の塊をたくさん作ります。最後に10個の塊が7個残ります。

同様に100個入った塊を数えます。10個そろったら一つの塊にします。その塊は1000個のもので構成されます。
このような1000個入りの塊が5個できるでしょう。さらに100個の塊が6個残ります。

このように分けると
塊になっていないものが8個
10個の塊が7個
100個の塊が6個
1000個の塊が5個
となります。で、この数は5678個となるのです。

この10個まとめて塊をつくり足りないものは残す、ということは10で割った商と余りを計算するということと同じなのです。
5678÷10=567…8
567÷10=56…7
56÷10=5…6

同じことを5個の塊でやってみましょう。
5個数えて塊を作る。塊がたくさんできて3個余る。(5678÷5=1135…3)
5個の塊を5個数え25個の塊を作る。塊がたくさんできるが余りはでない。(1135÷5=227…0)
25個の塊を5個数え125個の塊を作る。塊がたくさんできて2個余る。(227÷5=45…2)
125個の塊を5個数え625個の塊を作る。塊がいくつかできて余りはでない。(45÷5=9…0)
625個の塊を5個数え3125個の塊を作る。3125個の塊が1個できて625個の塊が4個残る。(9÷5=1…4)
出来上がったものは
塊になっていないものが3個
5個の塊が0個
25個の塊が2個
125個の塊が0個
625個の塊が4個
3125個の塊が1個
5進数で140203個であることが分かります。

n個ずつに分けて塊と余ったものに切り分ける。この作業を割り算をすることで計算で済ませているのです。
    • good
    • 2
この回答へのお礼

皆さんありがとうございます。
皆さんの回答すべてが参考になりましたが
rnakamraさんをベストアンサーに選ばせてもらいました。

お礼日時:2013/10/11 19:36

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