- ベストアンサー
小数の10進法→n進法の考え方について
- 小数の10進法→n進法の変換方法について、具体的な考え方を理解するための解説です。
- 整数の10進法→2進法の変換方法についての理解を元に、小数の10進法→n進法の考え方を説明します。
- 小数の変換を「10進法→n進法」で理解するために、具体的なイメージング方法について説明します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
10進法→n進法を塊で考えるということは、 塊の大きさを次々に変えていくことで、ある桁以上の数値とそれ以下を区別しているのです。 27とは、1の塊が完全な形で27個存在するということです。 2で割ることで2づつの塊で考えると、完全な塊が13個とそうならないのが1つ残ります。 さらに2で割ると4づつの完全な塊が6個とそうならない2づつの塊が1つ残ります。 こうやって考えて行くのがあなたの考えですね? 小数の変換にこれを応用すると、 0.8125 は1の塊が 0.8125個存在するということです。 これを0.5の塊で考えると、0.8125*2=1.625個となります。 この内、1個は完全な形ですから、小数第一位は1となります。 残りの0.625個は小数第二位以下で表す数値となります。 さらに0.25の塊で考えると、0.625*2=1.25個となります。 整数部の1が小数第二位の数値となり、小数部の0.25が小数第三位以下の数値となります。 整数でも小数でも、塊の大きさを次々と変えていき、 その何個分かである桁以上で表す部分とそれ以下の部分に分け、 整数の変換ならばそれ以下の部分(つまり余り)をその下の桁の数値とし、 小数の変換ならばそれ以上の部分(つまり整数部)をその桁の数値とします。
その他の回答 (6)
- alice_44
- ベストアンサー率44% (2109/4759)
最初から二進数で考えると簡単。 例えば、十進数 0.65 を二進数にする場合。 0.65 を二進数で表示したものが 0.(a)(b)(c)… だと置いてしまう。(a),(b),(c) それぞれが 0 か 1 かは、とりあえず判らないけど。 (a) の値を知るには、0.(a)(b)(c)… を2倍して 小数点を1桁右にずらし、整数部分を取り出せば いいでしょう? その計算を二進数で書けば、 [ 0.(a)(b)(c)… × 10 ] = (a) [ ] は中身の値の整数部分を表す「ガウス記号」、 式中の 10 は二進数の 10 で、つまり 2 です。 この式を十進数で書き換えれば、 [ 0.65 × 2 ] = (a) となります。 (a) が解った後、(b) を求めるには、 二進数では ( 0.(a)(b)(c) - 0.(a) ) × 10、 十進数なら ( 0.65 - (a)/2 ) × 2 を計算して 0.(b)(c)… を作り、 その二進小数第一位を、(a) のときと同様に 計算すればいいのです。以下、繰り返し。 値は十進数で計算するけれど、その計算が 二進数で何をやっていることになるのか、 掴めていれば ok です。
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
>上の書いたように「2個の塊」で考えていけば理解できるのですが 「2個の塊」じゃなくて「2倍の塊」で考えてみよう。 そしたら、小数点は「半分の塊」(つまり「1/2の塊」)で、まったく同じように考えられる。 10進数だって同じ。「10倍の塊」と「1/10の塊」で考える。 あと、n進数の小数点で困ったら、10倍、10倍と桁をずらして、整数にしちゃって、n進数に直して、10進の10をn進数にした物で割って、元に戻すって手もある。 例えば、0.4(10進)を4進数にする場合、10倍して4(10進)にしてから4進数の10(4進)にする。 その後で、10(4進)を22(4進、10進数で10)で割り算する。 ......0.12121 .....____________ 22)10 .........0 ......---- .......100 ..........22 .......---- ..........120 ..........110 .........----- .............100 ................22 すると、0.12121212…だと判る。
- tokidokimajime
- ベストアンサー率33% (3/9)
2進法の場合、 一桁目を1とすると、二桁目は1×2ですね。三桁目は1×2×2です。 少数では、小数点第一では1×1/2になることはわかりますね。 以下、第二位では1×1/2×1/2、第三位では1×1/2×1/2×1/2、と続きます。 ならべてみると、 …、 1×2×2、1×2、1、(小数点) 1×1/2、1×1/2×1/2、1×1/2×1/2×1/2、… です。 整数方向へは×2ずつ進みますので、2で割ってゆきます。 小数点方向へは、×1/2ずつ進みますので、1/2で割っていくことになります。 わかりやすく説明できたでしょうか ^^
- yukichance
- ベストアンサー率13% (9/67)
無限級数と同じだよ([?]は一桁のイメージ) [A]/10+[B]/100+[C]/1000...[X]/10^k=0.[A][B][C]...[X](10進法) [a]/2+[b]/4+[c]/8...[x]/2^k=0.[a][b][c]...[x](2進法) [α]/n^1+[β]/n^2+[γ]/n^3...[Χ]/n^k=0.[α][β][γ]...[Χ](n進法) 10進法の上位の桁から、マイナスにならぬよう、k順に、1/n^kで、m回、 最大限引き算し、(つまり割ること) mが幾つかで、k桁の値(0~n-1)が決まる。 ただし、0に収束しない場合もあるので、(これが混乱の元?)あしからず…
- asuncion
- ベストアンサー率33% (2127/6289)
>0.625を0.5で割るとしたときに >この0.625と0.5がどういう関係になっているのか 10進・2進はいったん横へ置いておいて、 そもそも、0.625 ÷ 0.5がいくつになるかはおわかりですよね? その商が、「0.625の中には0.5がいくつあるか」という意味を持ちます。
- asuncion
- ベストアンサー率33% (2127/6289)
10進の小数を2進に変換するのであれば、 元の小数に 1/2(=2^-1) がいくつあるか。これが、2進に変換したときの小数第1位。 そのあまりの中に 1/4(=2^-2) がいくつあるか。これが、2進に変換したときの小数第2位。 そのあまりの中に 1/8(=2^-3) がいくつあるか。これが、2進に変換したときの小数第3位。 以下同様です。
補足
ありがとうございます。 この計算が結果的にそうなるということは理解できているのですが なぜ10進法の0.8125÷0.5(=1/2)をして求められた商の 余りの部分に、また0.5(=1/2)を割れば小数第二位の値になるのかという部分が理解できません。 整数の場合だと 上の書いたように「2個の塊」で考えていけば理解できるのですが 小数だと0.8125÷0.5(=1/2)=1.625 1を抜き 0.625を0.5で割るとしたときに この0.625と0.5がどういう関係になっているのか ということが小数のためイメージが出来ません。 整数のように何か具体的な物で考えることが出来れば理解しやすいと思い考えているのですが良い考え方が思いつきません。 何かあればよろしくお願いします。