3.24 IEEE 754 算術演算の単精度データ型

float 値は 32 ビット幅です。

構造は以下のようになります。
図 3-1 IEEE 754 単精度浮動小数点形式
この図を表示するには、ご使用のブラウザが SVG 形式をサポートしている必要があります。ネイティブでサポートしているブラウザをインストールするか、次のような適切なプラグインをインストールします。Adobe SVG Viewer。.

S フィールドは数値の符号を保持します。正の場合は 0、負の場合は 1 です。
Exp フィールドは、数値の指数を 2 の累乗として表します。この値には 0x7F(127)だけバイアスがかけられており、値が小さくなるほど指数はゼロに近くなり、値が大きくなるほど指数は 0xFF(255)に近くなります。
以下に例を示します。
  • Exp = 0x7D(125)の場合、数値は 0.25 ~ 0.5 (0.5 を含まない)になります。
  • Exp = 0x7E(126)の場合、数値は 0.5 ~ 1.0 (1.0 を含まない)になります。
  • If Exp = 0x7F(127)の場合、数値は 1.0 ~ 2.0 (2.0 を含まない)になります。
  • Exp = 0x80(128)の場合、数値は 2.0 ~ 4.0 (4.0 を含まない)になります。
  • Exp = 0x81(129)の場合、数値は 4.0 ~ 8.0(8.0 を含まない)になります。
Frac フィールドは数値の小数部を表します。通常は先頭に暗黙の 1 ビットがありますが、このビットは領域の節約のため格納されません。
例えば、Exp0x7F である場合、以下のようになります。
  • Frac = 00000000000000000000000(2 進数)の場合、数値は 1.0 になります。
  • Frac = 10000000000000000000000(2 進数)の場合、数値は 1.5 になります。
  • Frac = 01000000000000000000000(2 進数)の場合、数値は 1.25 になります。
  • Frac = 11000000000000000000000(2 進数)の場合、数値は 1.75 になります。
通常、この形式のビットパターンの数値は、以下の式によって求められます。
(–1) S * 2 (Exp–0x7F) * (1 + Frac * 2–23)
上記の形式で格納された数値を正規化数と呼びます。
指数の最大値 255 と最小値 0 が使用されるのは特殊なケースです。指数 255 は無限大を表し、非数(NaN)値を格納できます。無限大はゼロ除算の結果として発生するか、この形式で格納するには大きすぎる値の計算結果として発生します。NaN 値は特殊な目的に使用されます。無限大は、Exp を 255 に設定し、Frac をすべてゼロに設定することによって格納されます。Exp が 255 で、Frac がゼロ以外である場合、ビットパターンは NaN を表します。
指数 0 は、非常に小さな数値を特殊な方法で表すことができます。Exp がゼロの場合、Frac フィールドの先頭には暗黙の 1 が付加されません。つまり、この形式では、ExpFrac の両方をすべて 0 ビットに設定することによって 0.0 を格納できます。Exp >= 1 を使用して格納するには小さすぎる数値は、通常の 23 ビットよりも低い精度で格納されます。このような数値を非正規化数と呼びます。
関連する概念
3.22 IEEE 754 算術演算
3.25 IEEE 754 算術演算の倍精度データ型
3.28 IEEE 754 算術演算と丸め
3.29 IEEE 754 浮動小数点演算で発生する例外
関連する参考文書
3.23 IEEE 754 算術演算の基本データ型
3.26 IEEE 754 算術演算の単精度浮動小数点数値のサンプル
3.27 IEEE 754 算術演算の倍精度浮動小数点数値のサンプル
関連情報
IEEE Standard for Floating-Point Arithmetic (IEEE 754), 1985 version
非機密扱いPDF file icon PDF 版ARM DUI0475KJ
Copyright © 2010-2014 ARM.All rights reserved.