gpt4 book ai didi

c - C 中的十六进制浮点常量

转载 作者:太空狗 更新时间:2023-10-29 16:52:16 24 4
gpt4 key购买 nike

我有一个十六进制浮点常量,我想直接在我的 C 程序中声明它,并避免转换。我相信它必须先归一化,对吧?如何对其进行规范化和声明?

// hex constant 0xDE.488631  
double val = 0xDE.488631; // Error must have exponent.
double val = 0x0.DE488631p-2; // Pretty sure this is wrong.

最佳答案

您可以使用 0 的指数:

float val = 0xDE.488641p0;

在更正常的表示法中,它表示 DE.488641×20(当然是 16 进制)。您的猜测很接近 - 指数是一个二进制指数,而不是十六进制指数。当您想要正指数时,您也会使用负指数。更正您的第二个示例,您可以使用:

float val = 0x0.DE488631p8;

在常规数学符号中表示 0.DE488631×28,或者等价于指数的十六进制底数 0.DE488631×162

我认为使用 0 的指数更容易理解,除非您有某种理由使用第二个示例中的形式。

关于c - C 中的十六进制浮点常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5480319/

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