gcc.info: Hex Floats

Go forward to Zero Length
Go backward to Complex
Go up to C Extensions
Go to the top op gcc

Hex Floats

   GNU CC recognizes floating-point numbers written not only in the
usual decimal notation, such as `1.55e1', but also numbers such as
`0x1.fp3' written in hexadecimal format.  In that format the `0x' hex
introducer and the `p' or `P' exponent field are mandatory.  The
exponent is a decimal number that indicates the power of 2 by which the
significand part will be multiplied.  Thus `0x1.f' is 1 15/16, `p3'
multiplies it by 8, and the value of `0x1.fp3' is the same as `1.55e1'.
   Unlike for floating-point numbers in the decimal notation the
exponent is always required in the hexadecimal notation.  Otherwise the
compiler would not be able to resolve the ambiguity of, e.g., `0x1.f'.
This could mean `1.0f' or `1.9375' since `f' is also the extension for
floating-point constants of type `float'.