浮動小数点数
浮動小数点数値を加減算するときはまず指数を揃えなければならない。絶対値の非常に小さな値と絶対値の非常に大きな値との浮動小数点数の加減算を行うときは、まず指数を絶対値の大きい方に揃える桁合わせを行ない、それから加減算を行なう。そのため絶対値の小さな値は仮数部が右側に多くシフトされて下位の桁の部分が反映されずに結果の値が丸められて情報が欠落する。情報欠落ともいう。詳細は情報落ちを参照。
ビット反転して0以上にした後に上述の方法を適用した指数部を、再びビット反転したものとなる。 こうして、負数に拡張されたガンマ符号によって自分の長さを含む指数部と、残りの仮数部から成る、と見ることができるような表現が得られる。
利点として、ビット表現を固定小数点数と解釈しても値・絶対値の大小関係が一致しているため、
単精度と倍精度、さらには4倍精度や、一部ビットをデータ型判別などの別用途に転用している処理系で用いられる7bitや30bitなど、任意のビット長表現との相互変換・丸め操作が、この方式では単に最下位ビットを追加したり切り捨てるだけで良い
大小関係の比較演算や符号反転に必要なハードウェア・計算量が、整数でのそれと同一
という点が挙げられる。また、1の近くでは桁数のほとんどが仮数部となるので精度が高い。
欠点としては、精度が変化するため従来の精度一定を前提としたノウハウに修正が必要かもしれない、−∞を除くワードのあらゆるビット表現に浮動小数点数としての意味が与えられるため、例外的な値を表現する方法を別に考えなければいけない、などといった点がある。浜田は1000...を符号なしの∞(射影モード用。符号なしの0と対応する)とし、表現可能な最大と最小の絶対値を持つ値を、具体的にその値を表すのではなく±∞と±0を表現するものとする(0は、通常の0を符号なしの0とし、符号付きの+0や−0は、無限大で割った結果など例外的な値としてのみ現れる)、という方法を提案している。
この表現法の初出は1981年だが、1983年に改良版が提案されているのでそちらをまずは参照すべきである。
いくつかの実装の報告や改良の提案などがある。
IEEE 754 形式から派生した浮動小数点数の形式。以下の2種類がある。
E4M3 - 符号部 1 ビット ・ 指数部 4 ビット ・ 仮数部 3 ビット
E5M2 - 符号部 1 ビット ・ 指数部 5 ビット ・ 仮数部 2 ビット
採用事例
NVIDIA - Hooper マイクロアーキテクチャ以降