拡張
倍精度浮動小数点数は、
浮動小数点数の一形式であり、通常の倍精度(64
ビット)よりも高い精度を持ち、四倍精度(128
ビット)よりも小さいものを指します。この形式は、より精密な数値計算が求められる場面で利用されます。ここでは、特にx87の内部形式で用いられる80
ビットの表現に焦点を当てて解説します。
x87の80ビット拡張倍精度形式
x87の内部形式における80
ビット拡張
倍精度浮動小数点数は、以下の構成を持ちます。
符号部: 1ビット(正または負を表す)
指数部: 15
ビット(数値の大きさを表す。ゲタ履き表現でエクセス16383)
*
仮数部: 64
ビット(数値の有効桁を表す)
この形式の重要な特徴は、仮数部がケチ表現(暗黙の1
ビット)ではない点です。通常の
浮動小数点数形式では、非正規化数でない場合、仮数部の最上位
ビット(整数部)は常に1であるとみなして省略されることが多いのですが、80
ビット拡張倍精度形式では、この
ビットが明示的に格納されます。これにより、より広い範囲の数値と高い精度での計算が可能になります。
指数部のゲタ履き表現
指数部は、エクセス16383というゲタ履き表現で格納されます。これは、実際の指数値に16383を加えた値を格納することで、負の指数も表現できるようにする手法です。これにより、ゼロに近い非常に小さい値から非常に大きい値までを表現できるようになります。
仮数部の明示的なビット
仮数部の最上位
ビットが明示的に格納されることで、精度が向上します。通常の
浮動小数点数形式では、この
ビットが省略されるため、表現できる数値の範囲や精度が制限されます。80
ビット拡張倍精度形式では、この制限を回避し、より精度の高い計算を可能にします。
IEEE 754は、
浮動小数点数の標準規格であり、拡張倍精度についても言及しています。ただし、
IEEE 754では、具体的な形式については定義されておらず、実装に委ねられています。これにより、様々なアーキテクチャやプロセッサで、異なる拡張倍精度形式が採用される可能性があります。
拡張倍精度が使用される場面
拡張
倍精度浮動小数点数は、高い精度が要求される科学技術計算や、金融計算などの分野で利用されます。また、グラフィック処理や音声処理においても、より正確な計算結果を得るために用いられることがあります。
AIFFファイルフォーマットと拡張倍精度
AIFF(Audio Interchange File Format)は、音声データを保存するためのファイルフォーマットの一つで、サンプリングレート値の保存に拡張
倍精度浮動小数点数(80
ビット)を使用しています。これにより、サンプリングレートを非常に正確に表現し、音質の劣化を防ぐことができます。
まとめ
拡張
倍精度浮動小数点数は、倍精度よりも高い精度を必要とする場合に利用される重要な形式です。x87の80
ビット形式は、その代表的な例であり、仮数部の明示的な最上位
ビットの格納が特徴です。
IEEE 754では、具体的な形式は定義されていませんが、その概念は広く採用されています。拡張倍精度は、科学技術計算や音声処理など、様々な分野で活用されており、その役割は非常に重要です。