• 締切済み

2進数の重み対応表について

度々すみません。ご協力お願いします。 2進数から8進数への変換ですが以下の2進数重み対応表の意味がいまいち分かりません。 問題: 2進数 1100.01の8進数への変換を次の手順で行う。 (1)3桁づつ区切る: (2)2進数の重み: (3)掛けて足す: (4)8進数: 001 100 . 010 ※3桁無い場合は0を補う 421 421 . 421 ←2進数重み対応表 001 400 . 020 ※掛けて足す 回答:14.1 質問: a.少数以下の重み対応表.421の意味が不明です。  (10進法だと、.10^-1, 10^-2・・・は分かりましたが・・) b.同様に2進数から16進数の場合の小数以下.8421も不明です。 簡単な質問かもしれませんが何卒宜しくご教授お願いします。

みんなの回答

  • info22_
  • ベストアンサー率67% (2650/3922)
回答No.3

>回答:14.1 間違いです。 書くとすれば「解答:14.2」だろうね。 質問:a >a.少数以下の重み対応表.421の意味が不明です。 .010=.010×8×(8^-1) =010.×(8^-1) 8進の小数点第1位の2進表現が「010」で、2進数ですから上位から「421」の桁の重みがあります。 =(0×4+1×2+0×1)×(8^-1) これば8進の小数第1位の1桁が2進「010」で重みが順に「4,2,1」であることを表しています。 =2×(8^-1) これは (8^-1)は8進の小数第1位の桁が2である ことを表しています。 質問:b たとえば以下のように小数部を16倍して考えれば、整数部と同様に、 重みが8421となることが理解できるかと思います。 .0101=.0101×16×(16^-1) =0101.×(16^-1) =(0×8+1×4+0×2+1×1)×(16^-1) =(4+1)×(16^-1) =5×(16^-1) =0.5 (16進)

全文を見る
すると、全ての回答が全文表示されます。
  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.2

2進→8進 にせよ、2進→16進 にせよ、 新たな基数が元の基数の冪であるような基数変換は、 桁を区切って、区切りごとに自然数として変換 すればよいです。 3桁づつ区切って… というのは、 1100.01 [2] = (1 [2])×(1000 [2]) + (100 [2]) + (010 [2])/(1000 [2]) = (1 [8])×(10 [8]) + (4 [8]) + (2 [8])/(10 [8]) = 14.2 [8] と計算しているのです。 区切りごとに 1 [2] = 1 [8], 100 [2] = 4 [8], 10 [2] = 2 [8] と計算するとき、2進数の各桁が「何の位」かを考えればよい。 10進法と同様に、1の位の左が2^1の位、その左が2^2の位です。

全文を見る
すると、全ての回答が全文表示されます。
  • andy_kun
  • ベストアンサー率23% (64/274)
回答No.1

.1(b)=2^-1=4×8^-1=8×16^-1 .01(b)=2^-2=2×8^-1=4×16^-1 .001(b)=2^-3=1×8^-1=2×16^-1 .0001(b)=2^-4=4×8^-2=1×16^-1 ※(b)は2進数の意味

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2進数&10進数&16進数の変換

     ◆ コンピュータで使用される2進数  人が日常使用している数値は10進数ですが、コンピュータは内部で数値を表現する場合、2進数を使用  しています。しかし、「0」と「1」だけの2進数では人が分かりにくいため、人間が見えるところでは  コンピュータは2進数を10進数や16進数が変換して表現しています。ここではその変換方法を学びます。  ◆ 2進数  2進数とは、「0」と「1」の2種類の数字を用いて全ての数を表現します。10進数では0から数えて「9」の  次は位があがることになりますが、2進数では「 1 」の次に位があります。位があがれば、その新しい桁は   「 1 」 となり、それ以下の桁は全て 「 0 」 となります。それでは、2進数の数の増え方を見てみましょう。      ところで、2進数を表現する時は一般的に8桁単位で表現するため、8桁未満の場合は頭に0をつけます。  つまり、上の2進数の値は順番に 00000000 → 00000001 → 00000010 → 00000011 → 00000100 →  00000101 → 00000110 → 00000111 → 00001000 と表します。以下は2進数と10進数の対応表です。 2進数と10進数の対応表 10進数 0 1 2 3 4 5 6 7 8 9 10 ・・・ 2進数 0 1 10 11 100 101 110 111 1000 1001 1010 ・・・  ◆ 2進数から10進数への変換方法  10進数と2進数の対応表は以下の通りです。2進数の桁が上がる時の10進数の値が以下となります。 2進数と10進数の対応表2 10進数 1 2 4 8 16 32 64 128 2進数 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000  従って、2進数で「1」となっている桁に対応する上記の10進数の基準値を合計することにより、2進数から  10進数の値を求めることができます。例えば、2進数の「 00101010 」を10進数に変換する場合、基準値が  32、8、2の所でビットが1なので下図の通り、2進数の「 00101010 」は10進数では「42」だと分かります。            ◆ 10進数から2進数への変換方法  10進数の数値を「 0 」になるまで「 2 」で割り算していき、その結果の「余りの数 」を並べることで  ある10進数の値を2進数の値へ変換することができます。それでは、具体的に変換して見て行きましょう。           例えば、10進数の「160」を2で割り算していくと上図の結果となります。後は、余りの数を下から順番に  並べれば 「 10100000 」 の値が算出されます。次に、「22」を2で割り算していき余りの数を下から順に  並べれば 「 10110 」 の値が算出されます。ネットワークにおいては、2進数を一般的に8桁で表示する  ことから、8桁になるよう上位に「 0 」を追加して「 00010110 」とします。当然「 10110 」と同じ値。 因みにここ参照ですがhttp://www.infraexpert.com/study/ip1.html なぜこれが10進数なんでょうか? 10進数というのは、0から9までの数字が1増えて10になるんですよね? なのに2進数と10進数の対応表2を見ると 倍数になっているのですが、、 これはいったいどういう違いなんでしょうか? 回答お願いいたします。 ほかにも解らなそうな点は、教えて頂けると幸いです。

  • 小数の 10進数→n進法の変換  について

    先日このことに関して質問をさせてもらったのですが その中で 10進法の小数をn進法に変換する場合 普通は、大きい桁からまとまりを作っていくと思うのですが 小さい桁からまとまりを作って求めることも出来るというように回答をいただいたのですが 「 0.8125という10進数の数を2進法にしたい場合に、最も小さい桁からまとまりを作っていけば、 0.8125に、2^(-4)=0.0625が1個含まれる 0.8125-0.0625=0.75に、2^(-2)=0.25が1個含まれる 0.75-0.25=0.5に、2^(-1)=0.5が1個含まれる ということで、2進数で.1101となることがわかる    」 これは、それぞれどのように計算をして求めているのでしょうか? 自分で計算してみたのですがよくわかりませんでした。 よろしくお願いします。

  • 10進数→n進法の変換 整数と小数の違いについて

    整数の場合 27という10進数の数を2進法にしたい場合 2で割り、2のまとまりを作り余りが出来ると、それを1の位の値にする と、このようなことを繰り返すことで2進法の表記を作り上げると思います。 小数の場合 0.8125という10進数の数を2進法にしたい場合 2を掛ける(=0.5で割る) ことで 0.5のまとまりを作り、商の整数部分を0.5のまとまりと考え少数第一位の値とする と、このようなことを繰り返すことで2進数の表記を作り上げると思います。 と、ここまでは理解できたのですが なぜ整数では、小さい桁から、まとまりを作っていくのに 小数では大きい桁から、まとまりを作っていくことになるのでしょうか? この疑問を自分の中でうまく言葉に出来ず、もどかしいので説明できる方がいましたら 私のレベルでも理解できるように説明していいだけないでしょうか。 よろしくお願いします。

  • 10進数 → 2進数

    小数点を含んだ実数の、10進数から2進数への変換のやり方がよくわかりません。できるときとできないときがあります。たとえば、 (0.1)_10 = (0.0001100110011・・・)_2 ※(A)_xとは、数値Aのx進数表現というイミです。以下もこの表現を使います。 となるらしいですが、どうやればいいのでしょうか?わかりません。 また、ついでに聞いておきたいことがもう一つあります。小数点を含まない数値の 変換も教えていただきたいです。 たとえば今までぼくは、(101)_10を2進数に変換するのに、 (101)_10 = (100 + 1)_10 = ( 2^2・25 + 1 )_10 = ( 2^2・( 2^3・(2 + 1) + 1 ) +1 )_10 = (2^6 + 2^5 + 2^2 + 2^0 )_10 = (1100101)_2 などという、めんどくさいことをやっていたのですが、もっとスマートなやりかたはないでしょうか? コンピュータもいちいちこんなやり方でやっていたら、計算量多すぎてやってられないような気がするので、きっとあると思うんですけど…簡潔なアルゴリズム…

  • 2進法で表現できない自然数はありますか?

    2進法で表現できない自然数はありますか? 10進法の少数は2進法で有限桁で表現できない場合があると知ったのですが 自然数でもそういう場合はありますか?

  • 問題の解き方

    基本情報技術者の、この問題がよくわかりません。 この問題はどうやって解くのでしょうか?解く前に問題の意味もあまり理解できなく、解説をお願いいたします。 ●0000~4999のアドレスを持つハッシュ表があり、レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。キー値が55550のときのアドレスはどれか。ここで、基数変換法ではキー値を11進数と見なし、10進数に変換した後、下4けたに対して0.5を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。

  • 16進数

    次の値を小数点以下2桁の16進数で表しなさい。 この問題の解き方がわかりません。どなたか教えてください。

  • 2、8、10、16進数に変換(小数点)

    10進数や2進数や8進数や16進数に変換する場合、 小数点以下を変換できません。 方法はありませんか?

  • 新しい実数の構成:自然数→正の実数→実数

    次のような実数の構成はあるのでしょうか? まず、10進法の表記により自然数を構成します。 0を含めます。 0,1,2,3,4,5,6,7,8,9,10, 11、12、・・・ といった数を考えます。 ケタ数は有限です。 順序関係は、まず、ケタの大小を比べ、ケタが同じであれば、最大ケタの数字を比べます。 0~9までの加法と乗法を九九として決め、一般の自然数の加法と乗法は筆算により定めます。 つぎに、小数点以下を考えます。 まず、小数点以下のケタ数が有限なる数を考えても、順序関係と加法・乗法はいままでと同様です。 そして、小数点以下のケタ数が無限なる数を考えます。 順序関係はいままでに追加して、 1=1.000・・・=0.999・・・ といったことなどを考えます。 加法と乗法の筆算も、「左から計算」していけばいいと思います。 このとき、新しく除法も考えられます。 これで、正の実数が構成できたと思いますが、 最後に、小数点以上のケタ数が無限なる数を考えます。 たとえば、 ・・・1212.12  とか ・・・333.333・・・ 順序関係はうまくいきませんが、 ・・・999+1=・・・000=0 と考えると、 ・・・999=-1 といった意味になり、 3をかけることで、 ・・・997=-3 といった意味になったり、 3でわることで、 ・・・333=-1/3 といった意味になったりします。 また、加法と乗法の筆算は、「小数点を中心に左右へ計算」していけば整合性が得られると思われます。 そして、減法・除法も考えられると思います。 つまり、負の実数が構成されたと思います。 結局、左右に無限に続く10進法表記で、実数とその加減乗除が構成されたと思います。 このような、実数の構成はあるのでしょうか? また、不備がありましたら指摘ください。

  • 10進数から2進数への変換の仕方について

    10進数から2進数への変換の仕方について 以下のサイトに説明があったのですが、 http://www.pursue.ne.jp/jouhousyo/sysad/sysad010.htm 10進数の60を2進数に変換する場合、変換したい10進数を商が0になるまで2で割りつづけ商と余りを求めていますが、その時に、15/2などは7.5になり余りが、説明では商が7、余りが1になっています。 10進数から2進数へ変換する場合は、小数点以下の余りはすべて1として計算するのでしょうか?