如何以十六进制输出浮点数的小数部分

It is very simple to print int numbers in the HEX format printf ("% X", a); But how to display the fractional part of Float in this format. I know that this is converted by multiplying this part by 2, isolating and dropping the whole part. But I hope that all the same, it can be deduced without conversion