16 進浮動小数点定数は、以下のもので構成されます。
C++ は、
C99 との互換性のために、16 進浮動小数点定数をサポートするように Standard C++ および C++98 を拡張します。
有効部分は有理数を表し、以下で構成されています。
オプションの小数部は、ピリオドの後に 16 進数字が続きます。
指数部は、有効部分を 2 のべき乗することを示し、オプションで符号付きの 10 進整数です。型を 表すサフィックスはオプションです。完全な構文は次のとおりです。
>>-+-0x-+-------------------------------------------------------> '-0X-' .------------------. .------------------. V | V | >--+---+--------------+-+--.----+-digit_0_to_f-+-+--| exponent |-+--> | +-digit_0_to_f-+ '-digit_0_to_F-' | | '-digit_0_to_F-' | | .------------------. | | V | | +---+-digit_0_to_f-+-+--.--| exponent |-----------------------+ | '-digit_0_to_F-' | | .------------------. | | V | | '---+-digit_0_to_f-+-+--| exponent |--------------------------' '-digit_0_to_F-' >--+---+------------------------------------------------------->< +-f-+ +-F-+ +-l-+ '-L-' Exponent: .--------------. V | |--+-p-+--+----+----digit_0_to_9-+------------------------------| '-P-' +-+--+ '- --'
整数部または小数部のいずれか一方は省略できますが、両方とも省略することはできません。2 進指数部が必要なのは、型を示すサフィックス F
があいまいなために 16 進数字と間違われるのを避けるためです。