uint64_t x = 0x7ff0000000000000ULL;
printf("%f\n", *(double *)&x);
output: inf
But you could use a representation where 0 is 0, and 1 is infinity, saving 63 bits...It just feels really bad faith.
Computing is fundamentally about decoding bit strings as different arbitrary representations that are meaningful to humans.