__float128
読み:アンダースコア-アンダースコア-フロートひゃくにじゅうはち
外語:__float128

 CおよびC++における非標準の変数型で、128ビット長の浮動小数点数を宣言する。
目次

概要
 実数型変数の型の一つ。long doubleよりも更に長い四倍精度の実数を宣言する、実装独自の変数型である。
 GCC 4.6以降でこの変数型に対応している。
 実装上は、次の関係が成り立つ。
 floatdoublelong double__float80__float128

特徴

仕様
 IEEE 754四倍精度(binary128)に対応する。
 符号部1ビット+指数部15ビット+仮数部112ビット(実質113ビット)で、指数に+16383のゲタをはかせるバイアス方式、基数2の128ビット長である。
 有効桁数は10進数表現で33桁程度。

符号
 __float128は浮動小数点形式で値を扱うため、整数型と異なり、常に符号ありで処理される。
 したがって、signed/unsignedによる符号の有無の指定は無効で、エラーになる。

GCC
 当初のGCCの実装では、演算のみに対応しており、そのままではprintfできなかった。
 直定数の接尾辞(サフィックス)は、qまたはQで、四倍精度と同じである。

再検索