- 締切済み
小数の10進法→n進法への変換について
例えば 0.304という10進法の数を5進法に変える時に 5をかけて1の位に出てきたものを並べて5進法の小数に変えますが 自分の使ってる参考書に 0.●●●の0の部分は10進法からn進法に変える時にそのままでいいというように 書かれているのですが 10進法で0.●●●という数でもn進法では1.◎◎◎というようになったりする事はあり得ないのですか? 出来ればその理由も教えてほしいです。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- bgm38489
- ベストアンサー率29% (633/2168)
一言で言えば、1は同じだから。 十進法だろうが、何進法だろうが、1は同じだから、1より小さいものは、何進法でも1以下になります。
循環小数0.999…=1なんてありますね。0.999…=0.333…×3=1/3×3=1なんて説明されたりします。 0.999…を別の書き方で言うと、1/10+1/10^2+1/10^3+…という無限数列の和です。これは、無限数列の和の計算により極限値1になります。もし無限回の操作を許せば1に等しく、その表記が循環小数0.999…です。そのため、0.999…は1の別表記であると言われたりします。 2進数で、0.111…と書いても、1/2+1/2^2+1/2^3+…という無限数列の和になり、これも1になります。 16進数でも同じで、0.FFF…=1です。何進数であっても、1になります。 1は何進数であっても1です。上記から分かると思いますが、何進数であっても、1未満の数(0.999…等の1の異表記を除くことに注意)はいくらでも1に近い数がありますが、0.abc…という表記になり、1にはなりません。 そのため、10進数で1未満の小数を何進数に書き換えても1.xyz…のようにはなりません。
- bsjack
- ベストアンサー率71% (5/7)
10進数で0.●●●はn進数で1.◎◎◎にはなりません。 逆を考えるとわかるのではないでしょうか。 m=n-1として n進数0.mmmmmm…を10進数に直してみると 限りなく1に近く、1よりも小さい数になります。 10進数で1よりも小さい少数をn進数に直しても、1を超えることはありません。 例えば、 0.304という10進数を2進数で表すとき、 2進数における少数点以下は 第一位 0.5 第二位 0.25 第三位 0.125 第四位 0.0625 という要素で構成されています。 これを足し合わせて0.304になる要素のところに1,それ以外に0を付けるので 0.304(10進) = 0.0100110… となります。 (0.25+0.03125+0.015625+…≒0.304) ここで逆に2進数を10進数にすることを考えます。 2進数0.111111…を10進数にすると 0.9999999…となり、限りなく1に近く、1よりも小さい数になります。 このことから、10進数で1よりも小さい少数をn進数で表すと 1を超えることはないことがわかると思います。
- tsuyoshi2004
- ベストアンサー率25% (665/2600)
ありえませんね。 仮にn進法で数字の並びが、0.xyz だとします。 数式で表すとx/n+y/n^2+z/n^3です。 これが最大になるのは、x=y=z=n-1の場合です。 (10進法なら0.999が最大ですよね?) (n-1)/n+(n-1)/n^2+(n-1)/n^3 =(n^2(n-1)+n(n-1)+(n-1))/n^3 =(n^3-1)/n^3 当然ながら、n^3-1<n^3 なので、 (n^3-1)/n^3<1 です。 よって、 x/n+y/n^2+z/n^3<1
- ok-kaneto
- ベストアンサー率39% (1798/4531)
ありえないです。 >10進法で0.●●● は必ず1より小さいですよね。とするとn進法でも1より小さいです。 すると整数部分に1が出る事はないです。 例えば0.9を2進数で表すと 0.111001・・・・ 9進数で表したとしても 0.8・・・・ となります。 n進数の小数点第一位の基数が(1/n)なので、整数部に1が出るためには(1/n)*(その桁の数)が1を超える必要があります。ということは(その桁の数)がnを超える必要がありますが、n進数なのでそれはないですよね。
- アウストラロ ピテクス(@ngkdddjkk)
- ベストアンサー率21% (283/1290)
10進法でも2進法でも、1以下のものは1以下のままです。