人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

1/5を2進法で表すとき、0.2に2をかけていくのはなぜですか?わかりやすく教えてください。


●質問者: massa-will
●カテゴリ:学習・教育
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● KUROX
●10ポイント

http://mt-net.vis.ne.jp/ADFE_mail/0270.htm

2の2乗、2の1乗、2の0乗、2の-1乗、2の-2乗、2の-3乗

2進数であらわしたときの桁数が上記のようになってるから。

2をかけてるという事は、2の-1乗で割っているということでは?

#間違ってるかな?

◎質問者からの返答

ありがとうございます。ただ、本質がいまひとつわかりません。


2 ● a2gi
●150ポイント

質問者さんは小数の2進数表示の前に自然数の2進数への変換を理解できていません。

良いサイトが見つからないので文章だけでうまく説明できるか分かりませんが

そもそも10進数を2進数に変換するときに用いる。

「2で割る」というのは例えば13を2進数に変換する場合にまず、

13÷2=6あまり1

ですね?

これは

○○|○○|○○|○○|○○|○○|○

2こずつの塊が6個在り1余っているという意味です。なので2進数の1桁目が1に成ります。

ここで○二つを●に書き換えるとこのような状態になります

●●●●●●○

続いて

6÷2=3あまり0

●●|●●|●●|

これは●二つが3つあることになります。ここで●のあまりがないので2進数の二桁目は0になります。

(●は○○なので2は使わないということになります)

今度は●●を□に置き換え

□□|□

3÷2=1あまり1

よって□□が1個、□が1個余ります。この□は□→●●→○○○○なので4が一ついるので2進数の3桁目が1

最後に□□を■としてこれは○が8個なので2進数の4桁目が1となり、まとめて

1101となります。■□○

つまり、2で割るというのは2の塊(2倍していく)が何個あるかを調べています。

これが分かれば少数も出来ます。なぜなら2を掛けるのではなく0.5で割っています。

つまり、0.5、半分(0.5倍していく)が何個あるかを調べています

少数はちょっと文字で表現するのが難しいので絵でいきます。あと書くのがめんどくさいので0.625でやります。

0.625÷0.5=1あまり0.25

今度は0.5(半分)の塊が一つあると分かったのであまりを計算していきます。

0.25÷0.5=0あまり0.5

半分の塊(0.25)はありません。

0.5÷0.5=1あまり0

半分の塊(0.125)がありました。

http://q.hatena.ne.jp/1203157191

◎質問者からの返答

大変に詳しい解説をありがとうございます。ただ、やっぱり少し難しいです。

回答への質問ですが、10進数を2進数に変換するときに2で割るのはなぜですか?

また、「2個ずつの塊が6個あり1余っている⇒2進数の1桁目が1になる」は、どうしてなの

でしょうか?

例えば、自分の理解の程度をお教えするのに、2進数の110101を10進数に変換する式;

1*2^5+1*2^4+0*2^3+1*2^2+0*2+1*1=53

は辛うじて理解できています。しかし、その逆ができません。


3 ● MarriageTheorem
●15ポイント

まず確認ですが、1/5つまり0.2を二進法で表わすとは、0.2 = 0.b_1b_2b_3b_4 \cdotsとなるような0と1からなる列を求めましょう、ということです。

そのためには、逆に「もし0.2が上のような形に表わされているとしたら、どんな可能性があるだろうか」と考えます。まず、両辺を2倍すると

0.4 = b_1.b_2b_3b_4 \cdots

となりますが、左辺の0.4は1よりも小さいので、冒頭のような列があったとしたらb_1は0になるはずです。よってb_1 = 0

続いて、この結果を代入した後で上の列をもう一度2倍すると

0.8 = b_2.b_3b_4b_5 \cdots

となり、先ほどと同じ理由でb_2 = 0。さらに2倍すると

1.6 = b_3.b_4b_5b_6 \cdots

となり、今度は1よりも大きいのでb_3 = 1となります。次は両辺から1を引いて(1より大きくなったので)

0.6 = 0.b_4b_5b_6 \cdots

この両辺を2倍すると、・・・といった具合に順次求めていけばよいのです。


ちなみに、例えば普通の(10進法の)割り算の筆算で2/7の小数表記を求める場合、まず2の右に0をくっつけて(20になる)、7がいくつまで引けるか考えてその数(今は2)を答えの欄に書いて、7を引けるだけ引いた余り(今は6)の右にまた0をくっつけて(60になる)、7がいくつまで引けるか考えて・・・と続けていきますよね。

この「右に0をくっつける」という操作は、実は直前の計算の余りを10倍していることになります。つまり、2進法でも10進法でも、途中で2倍するか10倍するかが違うだけで、実は結局同じことをしているだけなんです。

ダミーURL http://q.hatena.ne.jp/

◎質問者からの返答

ありがとうございます。回答への質問ですが、どうして0.2=0.abcde...と予想できるの

ですか?1よりも小さいからと考えると、それは10進法の発想ではないかと思ってしまい、

こんがらがってしまいます。


4 ● juic
●50ポイント

まず、2進数の定義どおりに計算してみます。

1/5の中に1/2が含まれているか?→No(0)

1/5の中に1/4が含まれているか?→No(0)

1/5の中に1/8が含まれているか?→Yes(1)

1/5-1/8=3/40

3/40の中に1/16が含まれているか?→Yes(1)

3/40-1/16=1/80

以下続く……

よって0.2(10)=0.0011…(2)



次に「2をかける」方式で計算します。

0.2×2=0.4……1以上?→No(0)

0.4×2=0.8……1以上?→No(0)

0.8×2=1.6……1以上?→Yes(1)


(ここで、0.2×2<1 ⇔ 1/5<1/2

0.2×2^2<1 ⇔ 1/5<1/4

0.2×2^3>1 ⇔ 1/5>1/8 (※右の不等式を両辺×2で左です))


1.6-1=0.6


( 上の式で1.6-1=0.6 ⇔ (1/5-1/8)×8=3/40×8 )


0.6×2=1.2……1以上?→Yes(1)


(0.6×2>1 ⇔ 3/40>1/16 (両辺×16))


……というわけでうまく計算できるわけです。



こちらもご参考に。

http://okwave.jp/qa3009359.html

◎質問者からの返答

ありがとうございます。もう少しでつかめそうなのですが、どうもつかみきれません。

どうして「1/5の中に1/2が含まれているか」を考える発想になるのでしょうか?

PS:ご紹介のサイトも参考いたしました。


5 ● yukiwaka
●15ポイント

私達が普段私用している数字の表現は10進法という方法で表しています。

10進法は10倍ごとに桁が上がり、2進法は2倍ごとに桁が上がります。

また、2進法では0と1の数字のみ使います。

10進法 0 1 2 3 4 5 6 7 8 9 10 11

2進法 0 1 10 11 100 101 110 111 1000 1001 1010 1011

* * *

といった感じです。

ですので、2をかけていく・・・というのは違う気がします。

すみませんっ答えになっていないかと思いますが参考程度にしてください。

http://www.oitda.or.jp/yh/digital/answer/a_digital2.htm

◎質問者からの返答

「答えになっていない」など、とんでもないことです。ありがとうございます。


1-5件表示/6件
4.前の5件|次5件6.

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ