アプリ版:「スタンプのみでお礼する」機能のリリースについて

10進法→n進法の計算の仕組みが理解できなくて困っていたのですが
10進法→10進法で考えてみたらわかりやすいのではないかと思い、それで考えてみました。
32525という10進法で表した数を10進法で表すとすると
32525を10で割って余りを並べていきますよね。
それを細かく見ていくとこうなると思います。

32525÷10=3252と余り5
この3252と余り5は、32525が10を3252個と5で構成していることを表している。

次に3252を10で割ることになりますが
この3252は形は3252でも意味は32520
3252÷10=325と余り2
この325と余り2は、32520が10を3250個と2個で構成ということを表している。

次に325を10で割ることになりますが
この325は形は325でも意味は32500
325÷10=32と余り5
この32と余り5は、32500が10を3200個と50個で構成ということを表している。

次に32を10で割ることになりますが
この32は形は32でも意味は32000
32÷10=3と余り2
この3と余り2は、32000が10を3000個と20個で構成ということを表している。

10を3000個+200個+50個+2個と5で32525という数が出来ている。

======================================================================

ここまではいいのですが、
27という10進法で表した数字を2進法に変換するとしたら
このそれぞれの流れはどういうふうになるのでしょうか?


27÷2=13と余り1
この13と余り1は、27が2を13個と1で構成していることを表している。

ここまではわかるのですが、この下からどのように考えればいいのかわからなくなります。


次に13を2で割ることになりますが
この13は形は13でも意味は?????
13÷2=6と余り1
この6と余り1は、?????が?個を???が?個とで構成ということを表している。


よろしくお願いします。

A 回答 (3件)

abcde という形(ここでは単純化するために5桁に限定します)で


書くことができる10進数は、
a × 10^4 + b × 10^3 + c × 10^2 + d × 10^1 + e × 10^0
という風に、いちばん右の桁から
10^0 = 1
10^1 = 10
10^2 = 100
10^3 = 1000
10^4 = 10000
という重みがかかっています。ここまででさかんに登場している
「10^何とか」の「10」が、10進数の「10」です。

さて、10進数の27を2進数に変換するということは、
27 = ... + a × 2^n + b × 2^(n-1) + ... + p × 2^2 + q × 2^1 + r × 2^0
と変換して、
...ab...pqr
の形にする、ということです。

ここまでのヒントを元に、チャレンジしてみてください。
    • good
    • 0

それでいいんですよ。


27を2で割って、商13余り1。→ 27(10進) = ??????1(2進).
13を2で割って、商6余り1。→ 27(10進) = ?????11(2進).
6を2で割って、商3余り0。→ 27(10進) = ????011(2進).
3を2で割って、商1余り1。→ 27(10進) = ???1011(2進).
1を2で割って、商0余り1。→ 27(10進) = 11011(2進).
と、右の桁から順に数字が決まってゆきます。

中間で割られる数 13,6,3,1 が10進表記であることに
あまり意味は無くて、余り付き除算がちゃんと行えさえすれば、
そこが何進法で書いてあっても構いません。
最初から27(10進)が2進法で110111と書いてあれば、
32525(10進)の場合と同様に簡単で、
11011(2進)を10(2進)で割って、商1101(2進)余り1。→ 27(10進) = ??????1(2進).
1101(2進)を10(2進)で割って、商110(2進)余り1。→ 27(10進) = ?????11(2進).
110(2進)を10(2進)で割って、商11(2進)余り0。→ 27(10進) = ????011(2進).
11(2進)を10(2進)で割って、商1(2進)余り1。→ 27(10進) = ???1011(2進).
1(2進)を10(2進)で割って、商0余り1。→ 27(10進) = 11011(2進).
となるだけです。
答えが先に判っていれば簡単だということです。

話は複雑になりますが、中間の商を3進法で書いて、
1000(3進)を2(3進)で割って、商111(3進)余り1。→ 1000(3進) = ??????1(2進).
111(3進)を2(3進)で割って、商20(3進)余り1。→ 1000(3進) = ?????11(2進).
20(3進)を2(3進)で割って、商10(3進)余り0。→ 1000(3進) = ????011(2進).
10(3進)を2(3進)で割って、商1(3進)余り1。→ 1000(3進) = ???1011(2進).
1(3進)を2(3進)で割って、商0余り1。→ 1000(3進) = 11011(2進).
でも同じこと。
(3進法での割り算が得意であればですが…)
    • good
    • 0

 その手順を、筆算を逆にした形で計算する方法がありますよ。



10)32525 余り 5
 ――――
10)3252 余り 2
 ――――
10)325 余り 5
 ――――
10)32 余り 2
 ――――
 3

 これを、割り算と逆順に書きだして、32525です。余りを1行ずらしているのは、私が計算しやすいからだけで、質問者様のご都合のいいようになさってください。

 n≦10であれば、この方法が楽です

 。n進数で10進数(m進数と一般化できなくはないが、10進数の筆算の特徴は使えない)の数を割った余りが、必ずn進数の最下位の桁の数になることを使って、桁を一つずらして再帰的に進めて行くわけです。

 2進数でも同じ要領です。

2)32525 余り 1
――――
2)16262 余り 0
――――
2)8131 余り 1
――――
2)4065 余り 1
――――

2)2032 余り 0
――――
2)1016 余り 0
――――
2)508 余り 0
――――
2)254 余り 0
――――

2)127 余り 1
――――
2)63 余り 1
――――
2)31 余り 1
――――
2)15 余り 1
――――

2)7 余り 1
――――
2)3 余り 1
――――
 1 

 逆順に書きだして、111 1111 0000 1101です。
    • good
    • 0

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