プロが教える店舗&オフィスのセキュリティ対策術

10進小数3.375を2進小数および16進小数への変換の仕方が分かりません

教えてください!!!!

A 回答 (3件)

小数点以上と小数点以下を分けて計算します。



2進数の場合
小数点以上では、2で割って商と余りを求める。これを商がゼロになるまで繰り返す。
得られた余りを右から左に並べる。一番右側には小数点が位置する。
例えば11.0の場合
11/2 =>5 余り 1
5/2 =>2 余り 1
2/2 =>1 余り 0
1/2 =>0 余り 1
結果は 1011.0

小数点以下では、2倍して1以上になったら1を引く。これをゼロになるまで繰り返す
1を引いた時は1を、引かなかったときは0を左から右に並べる。
例えば
0.375x2 =>0.75
0.75x2 =>1.5 => 0.5
0.5x2 => 1.0 => 0.0
結果は0.011

11.375(10進)=>1011.011(2進)

16進の場合は前記の2で割る、2倍するところを16で割る、16倍するにすればよい。
    • good
    • 1
この回答へのお礼

ありがとうございます!!

お礼日時:2011/05/22 23:48

整数部の変換はできるんですね?



小数部も同じですよ。
2進数では、1/2+1/4+1/8+(以下略)で表します。
16進数では、1/16+1/256+1/4096+(以下略)で表します。

なので、十進数の0.1は表しきれずに誤差のもと。
    • good
    • 0
この回答へのお礼

ありがとうございます!!

お礼日時:2011/05/22 23:48

固定小数点での話と理解して回答します。


まず考え方から。
2進数で0.1は、10進数で0.5、
2進数で0.01は、10進数で0.25、
2進数で0.001は、10進数で0.125、ってのは理解できますよね? それぞれ2の-1乗、2の-2乗、2の-3乗です。

0.375は0.25+0.125なので、2進数だと0.011になります。
16進数だと小数点以下を4桁ずつ区切るから、0.0110で0.6。
整数の部分は説明しなくていいだろうから省略。
    • good
    • 0
この回答へのお礼

ありがとうございます!!

お礼日時:2011/05/22 23:49

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