- ベストアンサー
2進数1101.011に重みをかけるとなぜ10進数になるのか?
- 2進数1101.011に2進数の桁の重みをかけると10進数に変換される理由について疑問があります。
- また、2進数1101.011に他の進数の桁の重みをかけた場合にはなぜその進数ではなく10進数に変換されるのかも気になります。
- 2進数の桁の重みなのになぜ10進数になるのか、その理由について教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
日本語がおかしいのが理解を妨げている気がします。 > 2進数1101.011 に10進数の桁の重みをかけたら、 > 2進数1101.011 に8進数の桁の重みをかけたら、 > 2進数1101.011 に16進数の桁の重みをかけたら、 > 2進数1101.011 に2進数の桁の重みをかけたら じゃなくて、 2進数1101.011 に各桁の重みを10進数で表現した物を掛けて足したら10進数 2進数1101.011 に各桁の重みを8進数で表現した物を掛けて足したら8進数 2進数1101.011 に各桁の重みを16進数で表現した物を掛けて足したら16進数 2進数1101.011 に各桁の重みを2進数で表現した物を掛けて足したら2進数 です。 1になっている桁の重みを10進数表現した物を10進数計算で足すと、 8+4+1+0.25+0.125=13.375(10進) 1になっている桁の重みを8進数表現した物を8進数計算で足すと、10+4+1+0.2+0.1=15.3(8進) 1になっている桁の重みを2進数表現した物を2進数計算で足すと、1000+100+1+0.01+0.001=1101.011(2進)
その他の回答 (6)
- SI299792
- ベストアンサー率47% (772/1616)
10進数で計算しているからです。 8進数で計算すれば8進数になります。 1101.011 でやってみます。 1 ×10(8) =10(8) (8進数で8は10になる) 1 × 4 = 4 1 × 1 = 1 1 ÷ 4 =0.2(8) 1 ÷10(8) =0.4(8) 合計15.3 確認はここでやりました。 https://k3su.xyz/other/radix-conv.php
お礼
ありがとうございます
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
蛇足な追記。 実は、10進数も「10進数の桁の重み」の足し算の式に出来ます。 10進数の「1374.245」は「1×10の3乗+3×10の2乗+7×10の1乗+4×10の0乗+2×10のー1乗+4×10のー2乗+5×10のー3乗」という「10進数の重みを各桁に掛けて、それを全部足す」という式になります。 一般化した 「桁の数値」×「進数」の「桁位置ー1」乗 の「進数」の所に「10」を入れて、全部足した式にしただけです。 実は、1、10、100、1000、10000と言うのは「10進数の桁の重み」で「10の△乗」という数値です。 「10のなんとか乗」は「10進数の桁の重み」です。 「16のなんとか乗」は「16進数の桁の重み」です。 「8のなんとか乗」は「8進数の桁の重み」です。 「7のなんとか乗」は「7進数の桁の重み」です。 「6のなんとか乗」は「6進数の桁の重み」です。 「5のなんとか乗」は「5進数の桁の重み」です。 「4のなんとか乗」は「4進数の桁の重み」です。 「3のなんとか乗」は「3進数の桁の重み」です。 「2のなんとか乗」は「2進数の桁の重み」です。 「nのなんとか乗」は「n進数の桁の重み」です。 「桁の重みの数値」は「10進数での数値」ですから「n」が何進数であっても、計算結果は必ず10進数になります。
お礼
ありがとうございます
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
「2進数の桁の重み」とは「その桁の数値1つだけを10進数に変換した数値」です。 ですから、2進数の桁の重みは、256、128、64、32、16、8、4、2、1、1/2、1/4、1/8…となっているのです。 2進の11①01101の○囲いの1の桁の重みは「32」です。 2進の11101101は、桁の重みで計算したら「128+64+32+8+4+1」ですから、それぞれの桁の重み(各桁の10進での値)を全部足せば、10進数になります。 「各桁の10進での値」を足しているのですから、10進数に変換されるのは当然です。 なお「n進数での各桁の重み」は 「桁の数値」×「進数」の「桁位置ー1」乗 の式で一般化出来ます。 8進数の「641」は、6×64+4×8+1×1=417で、それぞれの桁の重みは「64、8、1」です。 これは「6×8の2乗+4×8の1乗+1×8の0乗」を意味していて、全部の桁の『「桁の数値」×「進数」の「桁位置ー1」乗』をすべて足した式です。 2進数の1101.011の場合は、1×2の3乗+1×2の2乗+0×2の1乗+1×2の0乗+0×2のー1乗+1×2のー2乗+1×2のー3乗、となるので、この式を計算すると、10進の13.75になります。 「n進数の桁の重み」とは「その桁の数値を『10進数』で表したもの」なのですから、桁の重みを掛けたら、必ず10進数になります。
お礼
ありがとうございます
- kimamaoyaji
- ベストアンサー率26% (2801/10379)
1101.011という2進数がどんなものか判りませんが、少数低下はない筈です。 2進数の桁の重みは0001=1,2桁目の0010=2、3桁目0100=4、4桁目1000=8の10進数に置き換えられます、つまり2進数の桁の重みは2の倍数の10進数となります。 16進数の桁の重みなら0001=1、0010=16、0100=256、1000=4096の10進数になります 2進数を8進数や16進数に変換する必要性はあまりないと思います、10進数は通常の計算で使用される進数なので、理解しやすいように変換しているだけ。 なお2進数を16進数に変換する場合は桁の重みは4桁区切り0000から1111まで16進数で0からFの4桁、区切りで使用される場合がほとんどです。 例えば0001001001001111の2進数を桁の重みだけで16進数に直してみてください、けっこう大変だと思います。 2進数を0001 0010 0100 1111と4桁区切りになおして16進数で124Fと置き換えたほうが簡単です ちなみに8進数の場合は3桁区切り0 001 001 001 001 111で11117となります。 10進数だけは2の倍数でないので区切りが成立しないので全て桁の重みで計算しなくてはいけなくなります。 10進数だと8192(13桁)+1024(10桁)+64(7桁)+8(4桁)+4(3桁)+2(2桁)+1(1桁)=9295
お礼
ありがとうございます
- Kaneyan-R
- ベストアンサー率42% (1340/3126)
>10進数になるんでしょうか? 10進数の「数」を求めるために重みをかけるのですから、答えが10進数になるのは当然でしょう。
お礼
ありがとうございます
- w4330
- ベストアンサー率25% (377/1477)
文字しか書けない此処での回答のために二進数を縦に書きます 1101を 1 1 0 1 と書きます、これに二進数の「重み」を掛けます、重みです 1×(8) 1×(4) 0×(2) 1×(1) ( )内が二進数の各桁の重みです そして、掛けた数を足せば1101=12(十進数)です なぜ十進数になるか、それは十進数にするための「重み」だから 1101が八進数の場合重みをかければ 1×(512) 1×(64) 0×(8) 1×(1) 計算すれば十進数の577になる
お礼
ありがとうございます
お礼
ありがとうございます