• ベストアンサー

少数の進法

0.625を2進法で表すと0.101になることが分かりません。 これはまず10進法で表してから2で素因数分解するのでしょうか? でも答えが合いません。

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

  • ベストアンサー
  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.7

がんばってますね。またお会いしましたね。(笑) こういう風に考えるといいですよ。 分かりやすいように、小数点から3つ左に行ったところから、右方向に順繰り考えましょうか。 ABC.DEFG 十進法だったら、 A 100の位 B 10の位 C 1の位 D 0.1の位 E 0.01の位 F 0.001の位 G 0.0001の位 つまり、右に1つ行くごとに10分の1になります。 二進法だったら、 A 4の位 B 2の位 C 1の位 D 0.5の位 E 0.25の位 F 0.125の位 G 0.0625の位 右に1つ行くごとに2分の1ずつです。 では、 財布の中に、0.5ドル(D)、0.25ドル(E)、0.125ドル(F)、0.0625ドル(G)のコインがそれぞれ1枚ずつあるとして、 0.625ドルの商品の代金をちょうどで支払うにはどうしたらよいでしょうか? 私、理工系卒ですけど、いつも上記のように考えてます。 恥ずかしい。(笑) ・・・ですけど、イメージをつかむには上記がベストだと思ってます。

その他の回答 (7)

  • Ishiwara
  • ベストアンサー率24% (462/1914)
回答No.8

(1) 10進法の0.5は、2進法の0.1 (2) 10進法の0.25は、2進法の0.01 (3) 10進法の0.125は、2進法の0.001 (1)+(3) 10進法の0.625は、2進法の0.101

noriko_1
質問者

お礼

みなさん、どうもありがとうございます。 いろいろな考え方の指摘どうもありがとうございました。 とても参考になりました

  • zk43
  • ベストアンサー率53% (253/470)
回答No.6

0.625=a1/2+a2/2^2+a3/2^3+…(ai=0 or 1)と表わされるとする。 両辺に2を掛けると、 1.25=a1+a2/2+a3/2^2+… 両辺の整数部分を考えると、a1=1 よって、 1.25=1+a2/2+a3/2^2+… 0.25=a2/2+a3/2^2+… 両辺に2を掛けると、 0.5=a2+a3/2+a4/2^2+… 両辺の整数部分を考えると、a2=0 よって、 0.5=a3/2+a4/2^2+… 両辺に2を掛けると、 1=a3+a4/2+… 両辺の整数部分を考えると、a3=1 よって、 1=1+a4/2+a5/2^2+… 0=a4/2+a5/2^2+… よって、a4以降はすべて0 以上から、0.625=1/2+0/2^2+1/2^3となって、2進法で表わすと0.101 この問題では、特別に、 0.625=625/1000=5/8=(2^2+1)/2^3=1/2+1/2^3=0.101 ともできる。分母の8がたまたま2のべき乗なので。

  • hugen
  • ベストアンサー率23% (56/237)
回答No.5

0.・・・    → 0. 0.625×2=1.25 → 0.1 0.25×2=0.5  → 0.10 0.5×2=1    → 0.101

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.4

こういうやりかたもあります。 0.625×2=1.25 → 1+0.25 → 整数部の1をメモする → 整数部を消す 0.25×2= 0.5 →     → 整数部の0をメモする 0.5×2= 1.0 →     → 整数部の1をメモする → 終 メモした数字を並べれば 0.101    

  • kazu-ya
  • ベストアンサー率31% (26/83)
回答No.3

まず、小数の2進数での記法ですが、 小数第1位は2分の1(=0.5)、第2位は2の2乗分の1(=4分の1=0.25)、第3位は2の3乗分の1(=8分の1=0.125)の重み付けです。 (小数の10進数での記法は、10分の1、10の2乗分の1、10の3乗分の1ですよね。) これにしたがえば、(*は掛ける記号) 0.625=0.5+0.125=1*0.5+0*0.25+1*0.125なので、 2進数の0.101になります。

noname#39970
noname#39970
回答No.2

計算の仕方だったね 判りにくい場合は 左にビットをシフトすると良いよ 進数で左に1つシフトするとその進数倍になる 10進数で左に1つシフトすると10倍 2進数で左に1つシフトすると2倍 (8進数なら8倍、16進数なら16倍) 0.625 を 2(進数)の乗数倍して整数になるまで続ける 1回目 1.25 2回目 2.5 3回目 5 3回シフトすると整数5になる → b101 3回左シフトしたなら3回右にシフトすれば戻るよね? b101 を3回右にシフト → いくつ?

noname#39970
noname#39970
回答No.1

2進数の数字をbを付けて表してるという前提 b0100 → 4 b1000 → 8 これは判ると思う b0.1 → 1/2 = 0.5 b0.01 → 1/4 = 0.25 b0.101→ 1/2 + 1/8 →いくつ?

関連するQ&A