If you are in a C99 environment, you do not receive any warranty. The representation of floating point numbers is defined in 5.2.4.2.2, but this is only a logical mathematical representation. This section does not even mention how floating point numbers are stored in bytes. Instead, the footnote says:
The floating-point model is intended to clarify the description of each feature with a floating-point and does not require the implementation of floating-point arithmetic to be identical.
Further, in § 6.2.6.1 it is said:
Representations of all types are not indicated, except as indicated in this subclause.
And in the rest of this subclause, floating point types are not mentioned.
Thus, there is no guarantee that 0.0 is represented as all bit-zero.
source share