Frexp modf. Last time I checked code generation wasn't particularly good.
I already mentioned the alternative. memcpy() into a char array.
Memcpy doesnt fix endianess
It was never claimed to deal with endianness and while we're on the subject of binary-layout, union-based binary manipulation is even worse on that front as no specific binary layout is mandated for structures or floating points.