プロが教えるわが家の防犯対策術!

テキストに記載のあった以下の説明が理解できません。お手数ですがご教授頂ければ幸いでございます。

-記載-

10進法5.625を2進数で表すと、101.101となります。2進数の重み対応表を活用して、大きい重みから1を入れるべきか考えていきます。まず4<5.625なので重み4は1、4+2=>5.625なので重み2は0、・・・という要領です。

2進数      1 0 1 . 1 0 1
2進数の重み 4 2 1 . 05 0.25 0.125

-記載終-

質問:
(1)4+2=>5.625 ってなんですか?
(2)・・・の部分で対応表を使った全ての計算方法が分かりません。


割り算と掛け算を使う方法は分かります。

宜しくお願いします。

A 回答 (4件)

2進数各桁の重みは


4 → 2^2
2 → 2^1
1 → 2^0
0.5 → 2^(-1)
0.25 → 2^(-2)
0.125 → 2^(-3)

を表しています。
※「^」は累乗

質問の

(1)4+2=>5.625 ってなんですか?

を見る前に、最初から考えましょう。
それぞれの桁に1が入ったら、その数字を加算しますから、
4<5.625
で、元の数字より小さいので、重み4の桁は1。
次に重み2の桁に1が入ると、4+2で6になります。これは、
4+2=>5.625
となり、元の数字より大きくなってしまうので間違い。
結局、重み2の桁は0が入ります。
次に重み1の桁に1が入ると、4+0+1で5になります。これは、
4+0+1<5.625
で、元の数字より小さいので、重み1の桁は1。
次に重み0.5の桁に1が入ると、4+0+1+0.5で5.5になります。これは、
4+0+1+0.5<5.625
で、元の数字より小さいので、重み0.5の桁は1。
次に重み0.25の桁に1が入ると、4+0+1+0.5+0.25で5.75になります。これは、
4+0+1+0.5+0.25>5.625
で、元の数字より大きくなってしまうので間違い。
結局、重み0.25の桁は0が入ります。
次に重み0.125の桁に1が入ると、4+0+1+0.5+0+0.125で5.625になります。これは、
4+0+1+0.5+0+0.125=5.625
になり、元の数字と同じになるのでここで終了。
各桁で入れた数字を並べると、
101.101
になります。

判りました?

最初は、5.625なんていう小数点以下がついた数字じゃなくて、5を2進数で表すとか11を2進数で表すことを試した方が理解が早いと思いますよ。
    • good
    • 1
この回答へのお礼

早々のご教授誠に有難うございました。大変助かりました。また、ご質問すると思いますが引き続き宜しくお願いします。

お礼日時:2011/05/20 16:29

(1)だけ。


4+2≧5.625のつもりでしょうね。4+2>5.625ではありません。
あまり見ない書き方ですが、あえて言えば一部のプログラミング言語でこういう書き方をするようです。それにしても>=の方が一般的だと思いますが…。
    • good
    • 0
この回答へのお礼

ご回答恐縮でございます。今後とも宜しくお願いします。

お礼日時:2011/05/20 16:32

問題を天秤で質量を量る問題に置き換えると判りやすいでしょう。



質量のわからない物体を一方の皿に載せ、もう一方の皿に分銅を載せて比較します。
ここで物体の質量を5.625g,用意した分銅は以下の通りだとします。
8g,4g,2g,1g,0.5g,0.25g,0.125g,0.0625g

先ずは、一番重い8gを載せると当然天秤は分銅を載せた皿が下に傾きます。(8g>5.625g)これではいけません。
8gの分銅を下ろし、4gの分銅を載せます。今度は天秤は物体の側が下に傾いたままになります。(4g<5.625g)4gでは足りないみたいです。
さらに分銅を増やします。2gの分銅を載せると分銅を載せた皿が下に傾きます。(4g+2g=6g>5.625g)どうやら2gの追加では大きすぎるようです。
2gの分銅を下ろし1gの分銅を追加します。物体の側が下になったままです。(4g+1g=5g<5.625g)まだ足りないみたいです。

この作業を繰り返して物体の質量と分銅の合計がつりあうまで作業を続けます。
    • good
    • 0
この回答へのお礼

分かり易くご説明頂き本当に有難うございました。引き続き宜しくお願いします。

お礼日時:2011/05/20 16:31

>(1)4+2=>5.625 ってなんですか?



(1)4+2>5.625 の誤記です。

>(2)・・・の部分で対応表を使った全ての計算方法が分かりません。

まず、重み表の4を見る。

5.625は4より大きいので、5.625は「4+何か」であり、2進数で「100+何か」である。

次に、重み表の2を見る。

5.625は4+2より小さいので、5.625は「4+2+何か」ではないので、2は捨てる。

次に、重み表の1を見る。

5.625は4+1より大きいので、5.625は「4+1+何か」であり、2進数で「100.000+001.000+何か」であるから「101.000+何か」である。

次に、重み表の0.5を見る。

5.625は4+1+0.5より大きいので、5.625は「4+1+0.5+何か」であり、2進数で「100.000+001.000+000.100+何か」であるから「101.100+何か」である。

次に、重み表の0.25を見る。

5.625は4+1+0.5+0.25より小さいので、5.625は「4+1+0.5+0.25+何か」ではないので、0.25は捨てる。

次に、重み表の0.125を見る。

5.625は4+1+0.5+0.125と等しいので、5.625は「4+1+0.5+0.125」であり、2進数で「100.000+001.000+000.100+000.001」であるから「101.101」である。

以上、計算終わり。
    • good
    • 0
この回答へのお礼

早々のご回答誠に有難うございました。引き続き宜しくお願いします。

お礼日時:2011/05/20 16:30

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