ミニフロート
表示
計算機においてミニフロートは非常に少ないビット数で表現される浮動小数点数である。当然ながら、汎用的な数値計算は不向きである。ミニフロートは特殊な用途に使用され、特にコンピューターグラフィクスでは、反復計算が少なく精度が美的効果をもたらす場合によく使用される。機械学習でもbfloat16のような類似のフォーマットが使われる。更に浮動小数点演算やIEEE754の特性や構造を示すために、コンピューターサイエンスのコースで教育的ツールとして頻繁に使用される。
16ビットのミニフロートは、半精度浮動小数点数であり、8ビットやそれ以下のミニフロートもある。
表記方法
[編集]ミニフロートは通常、4つの数値(S,E,M,B)の組み合わせにより記述される。
- S は符号部の長さを表し、通常は0か1のどちらか。
- E は指数部の長さ。
- M は仮数部の長さ。
- B は指数バイアスを表す。
例
[編集]符号 | 指数部 | 仮数部 | |||||
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
値の表
[編集]IEEE 754と同様に扱った場合に、バイアス1で取りうるすべての値の表である。
... 000 | ... 001 | ... 010 | ... 011 | ... 100 | ... 101 | ... 110 | ... 111 | |
---|---|---|---|---|---|---|---|---|
0 0000 ... | 0 | 0.125 | 0.25 | 0.375 | 0.5 | 0.625 | 0.75 | 0.875 |
0 0001 ... | 1 | 1.125 | 1.25 | 1.375 | 1.5 | 1.625 | 1.75 | 1.875 |
0 0010 ... | 2 | 2.25 | 2.5 | 2.75 | 3 | 3.25 | 3.5 | 3.75 |
0 0011 ... | 4 | 4.5 | 5 | 5.5 | 6 | 6.5 | 7 | 7.5 |
0 0100 ... | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
0 0101 ... | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 |
0 0110 ... | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 |
0 0111 ... | 64 | 72 | 80 | 88 | 96 | 104 | 112 | 120 |
0 1000 ... | 128 | 144 | 160 | 176 | 192 | 208 | 224 | 240 |
0 1001 ... | 256 | 288 | 320 | 352 | 384 | 416 | 448 | 480 |
0 1010 ... | 512 | 576 | 640 | 704 | 768 | 832 | 896 | 960 |
0 1011 ... | 1024 | 1152 | 1280 | 1408 | 1536 | 1664 | 1792 | 1920 |
0 1100 ... | 2048 | 2304 | 2560 | 2816 | 3072 | 3328 | 3584 | 3840 |
0 1101 ... | 4096 | 4608 | 5120 | 5632 | 6144 | 6656 | 7168 | 7680 |
0 1110 ... | 8192 | 9216 | 10240 | 11264 | 12288 | 13312 | 14336 | 15360 |
0 1111 ... | Inf | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1 0000 ... | -0 | -0.125 | -0.25 | -0.375 | -0.5 | -0.625 | -0.75 | -0.875 |
1 0001 ... | -1 | -1.125 | -1.25 | -1.375 | -1.5 | -1.625 | -1.75 | -1.875 |
1 0010 ... | -2 | -2.25 | -2.5 | -2.75 | -3 | -3.25 | -3.5 | -3.75 |
1 0011 ... | -4 | -4.5 | -5 | -5.5 | -6 | -6.5 | -7 | -7.5 |
1 0100 ... | −8 | −9 | −10 | −11 | −12 | −13 | −14 | −15 |
1 0101 ... | −16 | −18 | −20 | −22 | −24 | −26 | −28 | −30 |
1 0110 ... | −32 | −36 | −40 | −44 | −48 | −52 | −56 | −60 |
1 0111 ... | −64 | −72 | −80 | −88 | −96 | −104 | −112 | −120 |
1 1000 ... | −128 | −144 | −160 | −176 | −192 | −208 | −224 | −240 |
1 1001 ... | −256 | −288 | −320 | −352 | −384 | −416 | −448 | −480 |
1 1010 ... | −512 | −576 | −640 | −704 | −768 | −832 | −896 | −960 |
1 1011 ... | −1024 | −1152 | −1280 | −1408 | −1536 | −1664 | −1792 | −1920 |
1 1100 ... | −2048 | −2304 | −2560 | −2816 | −3072 | −3328 | −3584 | −3840 |
1 1101 ... | −4096 | −4608 | −5120 | −5632 | −6144 | −6656 | −7168 | −7680 |
1 1110 ... | −8192 | −9216 | −10240 | −11264 | −12288 | −13312 | −14336 | −15360 |
1 1111 ... | −Inf | NaN | NaN | NaN | NaN | NaN | NaN | NaN |