2進数1101.011に重みをかけるとなぜ10進数になるのか?

このQ&Aのポイント
  • 2進数1101.011に2進数の桁の重みをかけると10進数に変換される理由について疑問があります。
  • また、2進数1101.011に他の進数の桁の重みをかけた場合にはなぜその進数ではなく10進数に変換されるのかも気になります。
  • 2進数の桁の重みなのになぜ10進数になるのか、その理由について教えてください。
回答を見る
  • ベストアンサー

2進数1101.011に2進数の桁の重みをかけると

2進数1101.011に2進数の桁の重みをかけるとなぜ10進数になるんでしょうか? それはそういう結果になるからだ、というのはわかっているんですが、私が知りたいのは 2進数1101.011 に10進数の桁の重みをかけたら、10進数に変換される 2進数1101.011 に8進数の桁の重みをかけたら、8進数に変換される 2進数1101.011 に16進数の桁の重みをかけたら、16進数に変換される というのなら納得できるんですが 2進数1101.011 に2進数の桁の重みをかけたら 10進数 というのが納得できません。なぜ、8進数、16進数、3,4,5,6,7,ではなく10進数になるんでしょうか?2進数の桁の重みなのに。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.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進)

okwaveokw
質問者

お礼

ありがとうございます

その他の回答 (6)

  • SI299792
  • ベストアンサー率48% (713/1473)
回答No.6

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

okwaveokw
質問者

お礼

ありがとうございます

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.5

蛇足な追記。 実は、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進数になります。

okwaveokw
質問者

お礼

ありがとうございます

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.4

「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進数になります。

okwaveokw
質問者

お礼

ありがとうございます

回答No.3

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

okwaveokw
質問者

お礼

ありがとうございます

  • Kaneyan-R
  • ベストアンサー率42% (1248/2907)
回答No.2

>10進数になるんでしょうか? 10進数の「数」を求めるために重みをかけるのですから、答えが10進数になるのは当然でしょう。

okwaveokw
質問者

お礼

ありがとうございます

  • w4330
  • ベストアンサー率25% (377/1478)
回答No.1

文字しか書けない此処での回答のために二進数を縦に書きます 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になる

okwaveokw
質問者

お礼

ありがとうございます

関連するQ&A

  • VBAで4桁の16進数から16桁の2進数変換

    VBAで4桁の16進数(FFFFとか)を2進数(1111 1111 1111 1111とか)に変換して変換した2進数を1桁づつセルに表示させるには、どうしたらいいでしょうか?ワークシート上だと8桁までしか対応してないようで、左右8桁づつわけてHEX2BINを使ってとりあえず変換する事は、できましたがVBAでマクロを組んで行いたいです。例えばA1に16進数を入れA2~P2に2進数を1桁づつ表示させたいです。よろしくお願いします。

  • 10進数から8けたの2進数に変換

    10進数から2進数への変換はわかるのですが 10進数から8桁の2進数への変換がわかりません。 仮に10進数の38を8桁の2進数に直す場合、どんな過程を経て、8桁の2進数になるのでしょうか。 どなたか教えていただけますと有難いです。 宜しくおねがいします。

  • 8桁の2進数を10進数に変換する方法を教えてください。

    キーボードから2進数を入力した値を10進数に変換し、変換結果を出力する方法が解りません。作成するにあたり仕様があり、私一人では解決できないので相談させていただきました。 <仕様は以下の通りです> (1)このプログラム(8桁の2進数を10進数に変換)をする際は、最後に出力する時(printf)以外は関数を使ってはいけません。 (2)キーボードから2進数を入力させる。 (3)空白(ブランク)が入力されても変換可能にする。 (4)入力された2進数は8桁にし、8桁以上の場合はエラーを出す。 (5)2進数の「0」と「1」以外の文字が入力された場合はエラーを出す。 (6)バイナリ変換をし、変換結果を出力する。 以上になります。 まだ、C言語を勉強を習い始めの初心者です。どうか、ご回答のほど宜しくお願いします。

  • 正負の値をとる8桁の2進数

    正負の値をとる8桁の2進数01010010を10進数に変換する場合、2+16+64=82であっていますか? 11100011の場合は反転して00011100にして1を足して00011101にして1+4+8+16=29であっていますか?

  • Excelで16桁の16進数を10進数に変換

    Excelを使って、16桁の16進数を10進数に変換したいと考えております。 HEX2DECでは、桁数が多すぎてエラーとなってしまいました。 関数の組み合わせでも、VBAで組むのでもどちらでも構いません。 こうすればできる、というようなアイデアだけでも、いただけるとうれしいです。 宜しくお願いいたします。

  • 10進数を16桁2進数になおす問題について

    10進数の0.3を16桁2進数表現であらわすと 0.0100110011001100 でいいのでしょうか? また10進数の0.1を2進数16桁であらわし,17桁目で0捨1入せよ.という 問題があるのですが 17桁まで表すと 0.00011001100110011 で0捨1入すると 0.0001100110011010 でいいのでしょうか? これを10回加えると1よりは大きくなるのでしょうか? それとも小さくなるのでしょうか? どなたか教えてください。

  • 53桁の数が素数である確率は?

    53桁の数に素数が何個あるか確率でわかるのですか? ご存じでしたら、50桁~55桁も知りたいです。 確か、数が増えれば素数の割合も下がるのですよね?

  • 進数の桁の重みはなぜ、重みと呼ぶんでしょうか? 何

    進数の桁の重みはなぜ、重みと呼ぶんでしょうか? 何か重いものなんてないですよね?どういう意味なんでしょうか?

  • Excelで「10桁の自然数×10桁の自然数」を計算する方法

    Excelで「10桁の自然数×10桁の自然数」を関数を組み合わせるか、VBAで組むかして、計算する方法をお分かりになる方おられませんでしょうか?(計算結果は文字列として得られることになると思いますが、それでかまいません。) こうすればできる、というアイデアだけでもかまいませんので、よろしくお願いいたします。

  • 何桁の数か分かりません

    36^2000が何桁の数なのか分かりません。 できましたら計算の過程も含めて教えていただけると幸いです。

専門家に質問してみよう