c -我怎么能打印()浮点在十六进制形式?



在C语言中,我们可以生成十六进制浮点量,我们也可以使用printf()以十进制字符串形式输出它们:

printf("%fn", 0x1.0p8); // Prints 256.00000

如何以十六进制形式输出浮点数,同时保持精度?(所有十六进制浮点数都是二进数,因此与十进制数不同,可以用浮点数表示)

printf("%MAGICn", 0x1.0p8) // Prints 100.00000

我的研究只发现了与以十六进制形式打印底层表示的字节相关的结果,而不是如何以十六进制形式打印浮点数的值

您可以使用%a格式以保持精度的十六进制格式打印浮点数。从手册页:

双参数被舍入并转换为样式为[-]0xh的十六进制符号。Hhhp[±]d,其中十六进制点字符后的位数等于精度规格。如果缺少精度,则认为它足以精确地表示浮点数,并且不会发生舍入。如果精度为零,则不显示十六进制点字符。p是一个文字字符' p ',指数由正号或负号后跟一个表示指数为2的十进制数组成。A转换使用前缀"0X"(而不是"0X"),字母"ABCDEF"(而不是"ABCDEF")来表示十六进制数字,字母"P"(而不是"P")来分隔尾数和指数。

相关内容

  • 没有找到相关文章

最新更新