📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 16行目: | 16行目: | ||
== IEEE 754形式 == | == IEEE 754形式 == | ||
==== 例: IEEE754形式 (単精度浮動小数点数) への変換 ==== | ==== 例: IEEE754形式 (単精度浮動小数点数) への変換 ==== | ||
IEEE 754 単精度浮動小数点数は、コンピュータで浮動小数点数を表現するための標準規格である。<br> | |||
これにより、異なるコンピュータやプログラム間で一貫した数値演算が可能になる。<br> | |||
<br> | |||
単精度浮動小数点数は、32ビット (4バイト) で表現される。<br> | |||
その内訳を以下に示す。<br> | |||
* 符号部 : 1ビット | |||
*: 符号部は、数値の正負を表す。 | |||
*: 0 = 正の数 | |||
*: 1 = 負の数 | |||
* 指数部 : 8ビット | |||
*: 指数部は、数値を2の何乗するかを示す。 | |||
*: 指数部はバイアス (基準となる値) として127を用いたバイアス形式で表現される。 | |||
*: 実際の指数Eは、ストアされる指数値eからバイアスを減算することにより求められる。 | |||
*: <math>E = e - 127</math> | |||
* 仮数部 : 23ビット | |||
*: 仮数部は、数値の有効桁 (精度) を表す。 | |||
*: 仮数部は、通常、1.XXXX...の形で表現され、仮数部にはこの小数部分が格納される。 (先頭の1は省略される) | |||
<br> | |||
===== 例: 9.875<sub>(10)</sub> ===== | ===== 例: 9.875<sub>(10)</sub> ===== | ||
以下の例では、<math>9.875_{(10)}</math> をIEEE754形式の浮動小数点に変換している。<br> | 以下の例では、<math>9.875_{(10)}</math> をIEEE754形式の浮動小数点に変換している。<br> | ||
| 76行目: | 94行目: | ||
# 変換完了 | # 変換完了 | ||
#: これにより、<math>0.3125_{(10)}</math> をIEEE754形式の32ビットの浮動小数点数にした値は <math>00111110110100000000000000000000_{(2)}</math> となる。 | #: これにより、<math>0.3125_{(10)}</math> をIEEE754形式の32ビットの浮動小数点数にした値は <math>00111110110100000000000000000000_{(2)}</math> となる。 | ||
<br> | |||
==== 例: IEEE754形式 (倍精度浮動小数点数) への変換 ==== | |||
IEEE 754 倍精度浮動小数点数 (double-precision floating-point number) は、コンピュータで浮動小数点数を表現するための標準規格である。<br> | |||
これにより、異なるコンピュータやプログラム間で一貫した数値演算が可能になる。<br> | |||
<br> | |||
倍精度浮動小数点数は、64ビット (8バイト) で表現される。<br> | |||
その内訳を以下に示す。<br> | |||
* 符号部 (Sign bit) : 1ビット | |||
*: 符号部は、数値の正負を表す。 | |||
*: 0 = 正の数 | |||
*: 1 = 負の数 | |||
* 指数部 (Exponent) : 11ビット | |||
*: 指数部は、数値を2の何乗するかを示す。 | |||
*: 指数部はバイアス (基準となる値) として1023を用いたバイアス形式で表現される。 | |||
*: 実際の指数Eは、ストアされる指数値eからバイアスを減算することにより求められる。 | |||
*: <math>E = e - 1023</math> | |||
* 仮数部 (Mantissa or Significand) : 52ビット | |||
*: 仮数部は、数値の有効桁 (精度) を表す。 | |||
*: 仮数部は、通常、1.XXXX...の形で表現され、仮数部にはこの小数部分が格納される。 (先頭の1は省略される) | |||
<br> | |||
IEEE 754 倍精度浮動小数点数は以下の形式で表される。<br> | |||
<math>(-1)^{S} \times 1.M \times 2^{E}</math><br> | |||
* S : 符号部 | |||
* M : 仮数部 | |||
* E : 指数部 | |||
<br> | |||
===== 例 : 倍精度浮動小数点数 ===== | |||
例えば、以下に示すような倍精度浮動小数点数があるとする。<br> | |||
0100000000110100000000000000000000000000000000000000000000000000 | |||
<br> | |||
この倍精度浮動小数点数を、符号部、指数部、仮数部に分解する。<br> | |||
* 符号部 | |||
*: 0 (正の数) | |||
* 指数部 | |||
*: 10000000011<sub>(2)</sub> = 1027<sub>(10)</sub> | |||
*: 実際の指数 <math>E = 1027 - 1023 = 4</math> | |||
* 仮数部 | |||
*: 0100000000000000000000000000000000000000000000000000<sub>(2)</sub>は、10進数で1.25<sub>(10)</sub> | |||
<br> | |||
したがって、この数値は以下に示すように解釈される。<br> | |||
<math>(+1) \times 1.25 \times 2^{4} = 1.25 \times 16 = 20.0</math><br> | |||
<br> | |||
==== 特殊な値 ==== | |||
* ゼロ | |||
*: 符号部が0または1で、指数部と仮数部が全て0の場合 | |||
* 無限大 | |||
*: 符号部が0または1で、指数部が全て1、仮数部が全て0の場合 | |||
* NaN (Not a Number) | |||
*: 指数部が全て1で、仮数部が0以外の場合 | |||
<br><br> | <br><br> | ||