- この記事は、浮動小数点(float) 値がどのように メモリ上に保存 され、表現されるかを説明する
- 値の 16進数・10進数の形式 と、実際の数値への変換方法に焦点を当てる
- 符号(Sign)、指数(Exponent)、仮数(Significand) 領域の定義と、それぞれの役割を説明する
- 特定の float 値が 正確にどのような2進数・10進数の値 を表すのかを解釈する方法の例を含む
- 表現可能な値どうしの 差分(Delta) の計算 にも触れている
浮動小数点値の保存構造の分析
- "halfb float float double" など、さまざまな 浮動小数点フォーマット が存在する
- 各値は、Raw Hexadecimal Integer Value(16進整数値)、Raw Decimal Integer Value(10進整数値) のようにメモリ内の保存値として確認できる
- 16進データは Hexadecimal Form ("%a") として、実際の浮動小数点表記に結び付けられる
- 各値の位置は Significand–Exponent Range(仮数–指数範囲上の位置) として示される
2進数および10進数の値の解釈方法
- 浮動小数点数は Base-2(2進法の評価式) として次のように表せる:
- (−12)02×102(100010012 − 011111112)×1.011111110010100000000002
→ 2進表現式による数値評価
- Base-10(10進法の評価式) では次の形になる:
- 1×210×1.4967041015625
→ 2の10乗と小数部分の積として表現する
- 実際に変換した際の 正確な10進数値 も表示される:
隣接する値との距離(Delta)の計算
- 表現可能な値のあいだの Delta(間隔) は重要な意味を持つ
- 次(Next)または前(Previous)の 表現可能な値までの距離(Delta to Next/Previous Representable Value) をそれぞれ提供する
- この間隔は、浮動小数点値の 有効桁数/精度 と関係している
要約
- 浮動小数点の メモリ表現 と、2進・10進変換の原理
- sign, exponent, significand 構造の説明
- 表現範囲と隣接値との間隔情報 もあわせて整理している
まだコメントはありません。