We don't do the octal 0-prefix thing and won't, so we're on the same page as Don Knuth already. I'm in favor of hex floats too, it's just a matter of implementing them in the parser, which is Jeff's territory. Everyone seems to favor disallowing 0 as a numeric literal coefficient, freeing up 0b as a binary prefix.
Our decimal notation to floating-point conversions are correct and our printing of floating-point values is precise and minmal: least decimal digits printed to reproduce the float value exactly (the exception is in arrays, where we print fewer digits so that we can show more stuff on the screen). Shout-out to Florian Loitsch's double-conversion library, which provides this functionality with excellent performance.
You can also reinterpret a Uint64 (or Uint32) value as a float to exactly control the bits. This is done in various places in base/float.jl. Still, hex float literals are a desirable feature. These examples use box and unbox, because they're defined before the reinterpret function, but the more idiomatic way to do something like this is to use the reinterpret function:
> The leading zero syntax for octal is downright evil.
> Hate it.
Quite apart from the notation, base 8 is a relic of computers that
stopped being made in 1986. There is no excuse for it in a modern
programming language. (I made this case to the Go people before Go
was released, to no avail. Apparently some people just love them
their 3 bits at a time notation.)
Binary is more general, but marginal enough that I'd say don't worry about it.