通信用語の基礎知識 全国のICカードこれひとつ 戻る

長倍精度
辞書:科学用語の基礎知識 算数・数学編 (NMATH)
読み:ちょうばいせいど
外語:long double
品詞:名詞

コンピューター内部における数値表現の方法の一つで、浮動小数点数の表現で用いられる。特定の呼称がなく、長倍精度、拡張倍精度、long doubleなど、様々に呼ばれている。

目次
概要

x87、つまりx86FPU機能は、初期の8087の頃から現在まで、一貫して80ビット長の精度を持っている。

この精度を完全に利用するためには、Microsoft Windows用のC/C++実装で一般的な64ビット長の倍精度(double型変数)では足らないため、さらに長い表現が必要である。

四倍精度(128ビット)までは不要ながらこのx87の仕様である80ビット長を扱う必要が生じ、このため用意されたのが中間となる長さを持った長倍精度である。

特徴
仕様

Intel FPUの仕様においては、符号部1ビット、指数部15ビット(+16383のゲタをはかせるバイアス方式)、仮数部64ビット(基数2)の80ビット長である。但し後述するように仮数部は実質81ビットであり、有効桁数は10進数表現で19桁程度となる。

仮数部

80ビットの中に収められる仮数部の長さは64ビットだが、実際にはこの精度は65ビットとされている。

これは、0/NaN/∞などを除いて、正規化により「1.」の部分を暗黙的に定義することでビット数を稼ぎ、都合65ビットとしているためである。この「1.」は、「暗黙の整数ビット」や「implicit」などと呼ばれている。

「1.」が存在するが、0は0で別途、指数部=仮数部=0の場合に0として定義されており、表現することが可能である。

プログラミング

C/C++ではlong double型の変数を用いる。GCCclang/LLVMで対応するが、Visual C++では完全対応していない。GCC独自拡張で__float80型が存在する。

Javaには該当する型がない。Javaではjava.math.BigDecimalクラスが存在するが、長倍精度と対応するものではない。

リンク
用語の所属
数値表現
浮動小数点
関連する用語
単精度
倍精度
四倍精度
long double
__float80
IEEE 754

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic