| 15行目: | 15行目: | ||
== IEEE 754形式 == | == IEEE 754形式 == | ||
==== 例: | ==== 例: IEEE754形式への変換 ==== | ||
===== 例: 9.875<sub>(10)</sub> ===== | |||
以下の例では、<math>9.875_{(10)}</math> をIEEE754形式の浮動小数点に変換している。<br> | 以下の例では、<math>9.875_{(10)}</math> をIEEE754形式の浮動小数点に変換している。<br> | ||
<br> | <br> | ||
| 34行目: | 35行目: | ||
#: 指数表記から浮動小数点数に格納する数に変換する。 | #: 指数表記から浮動小数点数に格納する数に変換する。 | ||
#: <br> | #: <br> | ||
#:* | #:* 符号部 | ||
#:*: <math>1.001111 \times 2^{3}</math> は正であるため、IEEE754形式の仮数部は <math>0</math> となる。 | #:*: <math>1.001111 \times 2^{3}</math> は正であるため、IEEE754形式の仮数部は <math>0</math> となる。 | ||
#:* 指数部 | #:* 指数部 | ||
| 45行目: | 46行目: | ||
# 変換完了 | # 変換完了 | ||
#: これにより、<math>9.875_{(10)}</math> をIEEE754形式の32ビットの浮動小数点数にした値は <math>01000001000111100000000000000000_{(2)}</math> となる。 | #: これにより、<math>9.875_{(10)}</math> をIEEE754形式の32ビットの浮動小数点数にした値は <math>01000001000111100000000000000000_{(2)}</math> となる。 | ||
<br> | |||
===== 例: 0.3125<sub>(10)</sub> ===== | |||
以下の例では、<math>0.3125_{(10)}</math> をIEEE754形式の浮動小数点に変換している。<br> | |||
<br> | |||
# 10進数を2進数に基数変換する | |||
#: まず、<math>0.3125</math> を2進数に基数変換する。 | |||
#: 整数部分は <math>0</math>、小数部分の <math>0.3125_{(10)}</math> は2進数で <math>0.0101_{(2)}</math> となる。 | |||
#: この2つ合わせると、<math>0.3125_{(10)}</math> は <math>0.0101_{(2)}</math> となる。 | |||
#: <br> | |||
# 2進数を指数表記にする。(正規化) | |||
#: <math>0.0101_{(2)}</math> を指数表記にする。 | |||
#: 指数表記では、仮数が10未満の小数を含む数にする。 | |||
#: つまり、<math>1.M</math> という形に正規化する。 (ケチ表現) | |||
#: <br> | |||
#: したがって、仮数を <math>2^{-2}</math> した <math>1.101 \times 2^{-2}</math> という形になる。 | |||
#: <br> | |||
# 浮動小数点数のビットに格納する | |||
#: 指数表記から浮動小数点数に格納する数に変換する。 | |||
#: <br> | |||
#:* 符号部 | |||
#:*: <math>1.101 \times 2^{-2}</math> は正であるため、IEEE754形式の仮数部は <math>0</math> となる。 | |||
#:* 指数部 | |||
#:*: <math>1.101 \times 2^{-2}</math> の指数は <math>-2_{(10)}</math> であるため、(8ビットの)2進数にすると <math>11111110_{(2)}</math> となる。 | |||
#:*: この <math>11111110_{(2)} \, \, = -2_{(10)}</math> に <math>01111111_{(2)} \, \, = 127_{(10)}</math> を加算すると、<math>01111101_{(2)} \, \, = 125_{(10)}</math> となる。 | |||
#:* 仮数部 | |||
#:*: 上記で求めた仮数 <math>1.101</math> の小数点以下の数 <math>101</math> を仮数部の先頭から格納する。 | |||
#:*: <math>101</math> 以降の数は <math>0</math> でパディングする。 | |||
#: <br> | |||
# 変換完了 | |||
#: これにより、<math>0.3125_{(10)}</math> をIEEE754形式の32ビットの浮動小数点数にした値は <math>00111110110100000000000000000000_{(2)}</math> となる。 | |||
<br><br> | <br><br> | ||