浮動小数点環境の 4 倍精度形式もまた、拡張倍精度形式の IEEE 定義に準拠しています。 この形式は、x86 用の Oracle Solaris Studio C/C++ コンパイラには存在しません。4 倍精度形式は 4 つの 32 ビットワードを占有し、112 ビットの小数部 f、15 ビットのバイアス付き指数 e、および 1 ビットの符号 s の 3 つのフィールドで構成されています。これらは、次の図に示すように連続して格納されます。
最上位アドレスの 32 ビットワードには、f[31:0] で示される小数部の最下位 32 ビットが含まれています。次の 2 つの 32 ビットワードには、それぞれ f[63:32] と f[95:64] が含まれています。次のワードのビット 0:15 には、小数部の最上位 16 ビット f[111:96] が含まれています (ビット 0 がこれらの 16 ビットの最下位ビット、ビット 15 が小数部全体の最上位ビット)。ビット 16:30 には 15 ビットのバイアス付き指数 e が含まれ (ビット 16 がバイアス付き指数の最下位ビット、ビット 30 が最上位ビット)、ビット 31 には符号ビット s が含まれています。
次の図では、4 つの連続した 32 ビットワードが 1 つの 128 ビットワードであるかのように各ビットに番号を付けています。そこでは、ビット 0:111 に小数部 f が格納され、ビット 112:126 に 15 ビットのバイアス付き指数 e が格納され、ビット 127 に符号ビット s が格納されています。
図 2-3 4 倍精度形式
3 つのフィールド f、e、および s 内のビットパターンの値によって、ビットパターン全体で表される値が決定されます。
Table 2–6 は、3 つの構成フィールドの値と、4 倍精度形式のビットパターンによって表される値の間の対応関係を示しています。u は、示されているフィールドの値が特定のビットパターンの値の決定には関係しないため、考慮が必要ないものです。
|
4 倍精度の拡張倍精度格納形式での重要なビットパターンの例をTable 2–7 に示します。2 番目の列のビットパターンは、4 つの 8 桁 16 進数として示されています。いちばん左の数値は最下位アドレスの 32 ビットワードの値であり、いちばん右の数値は最上位アドレスの 32 ビットワードの値です。最大の正の正規数は、4 倍精度形式で表すことができる最大の有限数です。最小の正の非正規数は、4 倍精度形式で表すことができる最小の正の数値です。最小の正の正規数は多くの場合、アンダーフローしきい値と呼ばれます。(最大と最小の正規数および非正規数に対する 10 進数値は近似値であり、示されている桁数に関して正確です。)
|
Table 2–7 に示されている NaN の 16 進数値は、NaN を表すために使用できる多くのビットパターンの 1 つにすぎません。