__float128
読み:アンダースコア-アンダースコア-フロートひゃくにじゅうはち
外語:__float128
CおよびC++における非標準の変数型で、128ビット長の浮動小数点数を宣言する。
概要
実数型変数の型の一つ。long doubleよりも更に長い四倍精度の実数を宣言する、実装独自の変数型である。
GCC 4.6以降でこの変数型に対応している。
実装上は、次の関係が成り立つ。
float ≦ double ≦ long double ≒ __float80 ≦ __float128
特徴
仕様
IEEE 754で四倍精度(binary128)に対応する。
符号部1ビット+指数部15ビット+仮数部112ビット(実質113ビット)で、指数に+16383のゲタをはかせるバイアス方式、基数2の128ビット長である。
有効桁数は10進数表現で33桁程度。
符号
__float128は浮動小数点形式で値を扱うため、整数型と異なり、常に符号ありで処理される。
したがって、signed/unsignedによる符号の有無の指定は無効で、エラーになる。
GCC
当初のGCCの実装では、演算のみに対応しており、そのままではprintfできなかった。
直定数の接尾辞(サフィックス)は、qまたはQで、四倍精度と同じである。
再検索