请教C语言中十六和八进制无法以小数形式输出吗?

刚学不久,有问题找不到答案,想请教一下各位大佬。
printf()十六进制浮点数输出有P指数计数法,但是没有看到有小数形式的输出,八进制亦是如此。难道在C语言中无法直接输出浮点数八进制和十六进制的小数形式吗? 谢谢!

C并没有提供以八进制和十六进制输出浮点数的格式符,而%o在C中的定义就是输出int类型(与long等修饰符的没关系)的,而且%o本身被定义为无符号值(相当于函数的返回值类型是无符号型),所以用%o输出浮点数,其结果都是0