gpt4 book ai didi

c++ - 从字节数组打印十六进制浮点常量

转载 作者:搜寻专家 更新时间:2023-10-31 00:49:29 25 4
gpt4 key购买 nike

如何从表示浮点值机器表示的字节数组中打印出 C99 中指定的十六进制浮点常量?例如给出

union u_double
{
double dbl;
char data[sizeof(double)];
};

一个十六进制浮点常量的例子是一个字符串形式

0x1.FFFFFEp127f 

可以在 IBM site 上找到这种形式的文字的语法规范。 ,语法的简要说明在 GCC site 上。 .

printf 函数可用于在可访问标准库中的 C99 功能的平台上执行此操作,但我希望能够使用标准 C89 或 C+ 在不支持 C99 的 MSVC 中执行打印+98。

最佳答案

printf手册说:

a,A

(C99; not in SUSv2) For a conversion, the double argument is converted to hexadecimal notation (using the letters abcdef) in the style [-]0xh.hhhhp�d; for A conversion the prefix 0X, the letters ABCDEF, and the exponent separator P is used. There is one hexadecimal digit before the decimal point, and the number of digits after it is equal to the precision. The default precision suffices for an exact representation of the value if an exact representation in base 2 exists and otherwise is sufficiently large to distinguish values of type double. The digit before the decimal point is unspecified for non-normalized numbers, and non-zero but otherwise unspecified for normalized numbers.

关于c++ - 从字节数组打印十六进制浮点常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com