アプリ版:「スタンプのみでお礼する」機能のリリースについて

0.625を2進法で表すと0.101になることが分かりません。

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

A 回答 (8件)

がんばってますね。

またお会いしましたね。(笑)

こういう風に考えるといいですよ。

分かりやすいように、小数点から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ドルの商品の代金をちょうどで支払うにはどうしたらよいでしょうか?


私、理工系卒ですけど、いつも上記のように考えてます。
恥ずかしい。(笑)
・・・ですけど、イメージをつかむには上記がベストだと思ってます。
    • good
    • 2

(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
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/05/21 06:19

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のべき乗なので。
    • good
    • 1

0.・・・    → 0.


0.625×2=1.25 → 0.1
0.25×2=0.5  → 0.10
0.5×2=1    → 0.101
    • good
    • 1

こういうやりかたもあります。


0.625×2=1.25 → 1+0.25 → 整数部の1をメモする → 整数部を消す
0.25×2= 0.5 →     → 整数部の0をメモする
0.5×2= 1.0 →     → 整数部の1をメモする → 終

メモした数字を並べれば 0.101  
 
    • good
    • 2

まず、小数の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になります。
    • good
    • 0

計算の仕方だったね


判りにくい場合は 左にビットをシフトすると良いよ
進数で左に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回右にシフト → いくつ?
    • good
    • 0

2進数の数字をbを付けて表してるという前提



b0100 → 4
b1000 → 8

これは判ると思う
b0.1 → 1/2 = 0.5
b0.01 → 1/4 = 0.25

b0.101→ 1/2 + 1/8 →いくつ?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!