ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
コンピューター内部における数値表現の方法の一つで、浮動小数点数の表現で用いられる。特定の呼称がなく、長倍精度、拡張倍精度、long doubleなど、様々に呼ばれている。
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型の変数を用いる。GCCやclang/LLVMで対応するが、Visual C++では完全対応していない。GCC独自拡張で__float80型が存在する。
Javaには該当する型がない。Javaではjava.math.BigDecimalクラスが存在するが、長倍精度と対応するものではない。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます