ミニフロート

出典: フリー百科事典『ウィキペディア(Wikipedia)』

計算機においてミニフロートは非常に少ないビット数で表現される浮動小数点数である。当然ながら、汎用的な数値計算は不向きである。ミニフロートは特殊な用途に使用され、特にコンピューターグラフィクスでは、反復計算が少なく精度が美的効果をもたらす場合によく使用される。機械学習でもbfloat16のような類似のフォーマットが使われる。更に浮動小数点演算やIEEE754の特性や構造を示すために、コンピューターサイエンスのコースで教育的ツールとして頻繁に使用される。

16ビットのミニフロートは、半精度浮動小数点数であり、8ビットやそれ以下のミニフロートもある。

表記方法[編集]

ミニフロートは通常、4つの数値(S,E,M,B)の組み合わせにより記述される。

  • S は符号部の長さを表し、通常は0か1のどちらか。
  • E は指数部の長さ。
  • M は仮数部の長さ。
  • B は指数バイアスを表す。

[編集]

8ビットのフロートの例 (符号1bit 指数4bit 仮数部3bit)
符号 指数部 仮数部
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