note: 浮動小数点数
浮動小数点数の最大・最小値や有効桁数(精度)についての備忘録です。
32bit float
bit表現
一般的な標準フォーマットであるIEEE-754によると、 符号部が1bit。指数部(E)が8bit。仮数部(M)が23bit。
特殊ケース(E=0, E=255)を除いた値の決め方は以下の通り。
表現できる最大・最小の数
最大は を考えるので、およそ
最小は を考えるので、およそ
E-127=0 のときに表現できる最小の数
M=1を考えるので、
10進数で小数点以下7桁くらいが表現できる最小の数であることがわかる。
ここで有効桁数について調べると、2進数で24桁(仮数部23桁とプラスする1)あるので、10進数では 桁。
一般化
指数部のbit数をA、仮数部の桁数をBとしたときに:
最大 | |
最小 | |
有効桁数 |
32bit float 以外の浮動小数点数
A | B | 最大 | 最小 | 有効桁数 | |
---|---|---|---|---|---|
double(64bit) | 11 | 52 | 15.9545 | ||
half(16bit) | 5 | 10 | 65504 | 0.00006109 | 3.3113 |
符号なし11bit | 5 | 6 | 65024 | 0.00006198 | 2.1072 |
符号なし10bit | 5 | 5 | 64512 | 0.00006294 | 1.8061 |