• ベストアンサー

10進数→2、6、18進数への変換

53.8(10進数)を2進数(小数9位まで)、8進数(小数5位まで)、16進数(小数5位まで)求めてください。できれば、自分でも解けるようになりたいので、やり方も教えていただけると嬉しいです。 よろしくお願いします。

noname#226955
noname#226955

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

  • ベストアンサー
  • info222_
  • ベストアンサー率61% (1053/1707)
回答No.3

>53.8(10進数)を2進数(小数9位まで)に変換するには 整数部「53.」と小数部「0.8」に分けてそれぞれを変換します。 整数部 53.=52+1=26*2+1=(13*2+0)*2+1=((6*2+1)*2+0)*2+1 =(((3*2+0)*2+1)*2+0)*2+1 =((((1*2+1)*2+0)*2+1)*2+0)*2+1 =1*2^5+1*2^4+0*2^3+1*2^2+0*2^1+1*2^0 =110101.(2進数) すなわち 2で割った余りを並べたものになります。 2)53 2)26 ... 1(LSB) 2)13 ... 0 2)6 ... 1 2)3 ... 0 2)1 ... 1 ... 1(MSB) MSBからLSBまで並べれば53の2進変換した「110101」が得られます。 小数部 0.8 小数部を2倍して繰り上がる整数部を並べれば小数部の2進変換値がえられる。 0.8*2=1.6=整数部1+小数部0.6 → .1 ...(※1) 0.6*2=1.2=整数部1+小数部0.2 → .11 0.2*2=0.4=整数部0+小数部0.4 → .110 0.4*2=0.8=整数部0+小数部0.8 → .1100 0.8*2=1.6=整数部1+小数部0.6 → .11001 ここからの計算は(※1)からの繰り返しなので 2進の桁のパターン「1100」の繰り返しになる。 0.8=0.110011001100 ... (2進数) 小数第9位までで打ち切ると 0.8=0.110011001(2進数) 整数部をあわせると 53.8=110101.+0.110011001=110101.110011001 (2進数) ...(答) >8進数(小数5位まで) 53.8の2進変換した 110101.110011001 を 小数点を中心に3桁で区切って |110|101|.|110|011|001| 区切った3桁の2進数を8進数に変換してならべると8進変換値 65.631(8進法) ... (答) が得られます。 >16進数(小数5位まで) 53.8の2進変換した 110101.11001100110011001100 を 小数点を中心に4桁で区切って 11|0101|.|1100|1100|1100|1100|1100| 先頭に00を補って |0011|0101|.|1100|1100|1100|1100|1100| 区切った4桁の2進数をそれぞれ16進数に変換してならべると16進変換値 35.CCCCC (16進法) ... (答) が得られます。

noname#226955
質問者

お礼

お礼が遅くなり申し訳ないです。 分かりやすく教えていただき、大変助かりました。 ありがとうございました。

その他の回答 (3)

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.4

やりかたの原理をはじめから説明します。8進数の例です。 1.まず、次の表を作ります。  8^2=64  8^1=8  8^0=1 (ここは何進数でも必ず1です) これ以下は小数部用です  8^(-1)=1/(8^1)=0.125  8^(-2)=1/(8^2)=0.015625 これを^-5まで作ります。 2.「53.8」に、前記の数がそれぞれ最大何個含まれるか、大きな数から考えていって、次のような計算式を作ります。  53.8=(64*0)+(8*6)+(1*5)+(0.125*6)+(0.015625*3)+・・・ 3.前記の式の*の後の数を順に並べると出来上がりです。  (10進数)53.8=(8進数)65.63・・・

noname#226955
質問者

お礼

お礼が遅くなり申し訳ないです。 分かりやすく教えていただき、大変助かりました。 ありがとうございました。

  • Tann3
  • ベストアンサー率51% (708/1381)
回答No.2

 やり方は、単純に、泥臭くやることしかありません。仕組みを理解すれば簡単です。 (1)2進法:a1、a2、a3、・・・を「0または1」として  10進法の数= 1*a1 + 2*a2 + 4*a3 + 8*a4 + 16*a5 + 32*a6 + 64*a7 ・・・+ 2^(n-1)*an を2進法で表わせば、  an ・・・ a7 a6 a5 a4  a3 a2 a1 ということです。各々の a1、a2、a3、・・・が「0」か「1」かを、地道に計算して求めます。 (2)同様に、16進法:a1、a2、a3、・・・を「0~15(10→A、11→B、12→C、13→D、14→E、15→F と書く)」として   10進法の数= 1*b1 + 16*b2 + 256*b3 + 4096*b4 + ・・・+ 16^(n-1)*bn を16進法で表わせば、  bn ・・・ b4 b3 b2 b1 ということです。各々の b1、b2、b3、・・・が「0~15」のいずれかを、地道に計算して求めます。 (3)小数点以下は、ちょっと面倒になります。  2進法:c1、c2、c3、・・・を「0または1」として  10進法の小数点以下の数= (1/2)*c1 + (1/4)*c2 + (1/8)*c3 + (1/16)*c4 + (1/32)*c5 ・・・+ (1/2)^n*cn を2進法で表わせば、  0. c1 c2 c3 c4  c5 ・・・ cn となります。各々の c1、c2、c3、・・・が「0」か「1」かを、地道に計算して求めます。 (16進数も同じなので省略)

noname#226955
質問者

お礼

お礼が遅くなり申し訳ないです。 分かりやすく教えていただき、大変助かりました。 ありがとうございました。

  • trytobe
  • ベストアンサー率36% (3457/9591)
回答No.1

筆算の 10)53.8 みたいな形で 53.8 は 10で繰り返し割っていくと、商に5,3,8,と出てくるので、5×10+3×1+8×0.1 という合計だというのがわかります。 これと同じように16で繰り返し割っていくと、16進数がもとまります。 16)53.8 にように割ると、3あまり5.8。 5.8を16で割ると、0.3あまり0.58。・・・と商にずっと3,3,3,・・・と出てくるので、10進数での58.3は、16進数では3.33333・・・・なのです。 実は、16=2の4乗ですので、16進数1桁分は、2進数4桁分に分解できて、16進数の3.33333・・・は、16進数1桁の3を二進数4桁で書いた0011に書き換えた、0011.00110011001100110011・・・・ という2進数になるのです。頭の0は省けるので、11.001100110・・・・ と小数点以下9桁までで切るのも一緒に済ませてしまいます。 さらに、実は、8=2の3乗ですので、2進数3桁分は、8進数1桁分にまとめることができて、2進数の11.00110011001100110011・・・は、小数点基準に3桁ずつに区切って、11.001/100/110/011/001/100/11・・・ としてから8進数1桁ずつににまとめると、3.14631・・・と小数点以下5桁までにできます。

noname#226955
質問者

お礼

お礼が遅くなり申し訳ないです。 分かりやすく教えていただき、大変助かりました。 ありがとうございました。

関連するQ&A

  • 2進数から16進数への変換

    2進数から16進数への変換はだいたいはできるんですが、小数点の2進数を16進数に変換するやり方がわかりません。 (例) 2進数1001→16進数では9ですが、0.0101などのやりかたがわかりません。 よろしくお願いします

  • 小数の10進数を2進数に変換する方法

    小数の10進数を2進数に変換するには、変換したい10進数の小数部を小数が0になるまで2倍するのはなぜでしょうか?

  • 進数の小数点をどう変換するのか

    現在進数の小数点で詰まってます 2進数⇒10進数へ変換するときは 11.01011⇒ 1*2~1+1*2~0+0*2~-1+1*2~-2+0*2~-3+1*2~-4+1*2~5 2 +1 +0 +0.25 +0.125 +0.625 +0.3125 3+1.3125 4.3125 2進数⇒16進数へ変換するときは 11.01011⇒ B.0 |8+0+2+1| B.0B で良いと思ってます(間違ってたらすいません) ここで本題なんですが、小数点を含んだ進数で 2進数⇒8進数 8進数⇒2進数 10進数⇒2進数 16進数⇒2進数 この[通り]の場合の小数点の出し方を何方かご存知ないですか? 無ければ無い、あればあるで教えて頂けないでしょうか 扱う数字はいくつでも勿論結構です、宜しく御願いします

  • 10進数を2進数に変換する問題

    勉強の身なのですが、どうも下記の問題がとけません 10進数の-0.125を表現すると2進数で何になるのでしょうか? 小数点が入る問題がまだ理解しておらず、0.125の所からわかっておりません、教えて頂ければ幸いです

  • 10進法の数を60進法の数に変換するには

     10進法で表された0.06は60進法ではいくつですか。  一般に、10進数を60進数に直す方法が分りません。特に、小数の場合。  よろしくお願いします。

  • 循環小数の進数変換について質問です。次の16進数を10進数に直したいの

    循環小数の進数変換について質問です。次の16進数を10進数に直したいのですが、どうすればよいのかわかりません;どなたかお力添えをお願いします。 (1)0.2222222222222222… (2)0.6666666666666666…

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

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

  • n進数変換

    n進数への変換方法を教えて下さい。10進数(264)から2進数、16進数。10進数小数点(23.624)から2進数、16進数。 色々調べましたがよく理解できませんでした。 ノートに書いて変換してみたいです。計算方法を教えて下さい。 10進数から2、16進数に変換しますが、その反対2進数から10、16進数。16進数から2、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として計算するのでしょうか?

  • 二進数の循環小数を十進数に変換する方法

    二進数の循環小数を十進数に変換する方法が分かりません。 サイトも探してみたのですが、十進の循環を二進数に変換するものは見つかっても、逆は見つからなくて・・・ 教えていただけませんでしょうか、よろしくお願いします。