gpt4 book ai didi

c++ - 如何打印 NaN 的有效负载?

转载 作者:太空狗 更新时间:2023-10-29 22:59:36 25 4
gpt4 key购买 nike

我们有像 std::nanl 这样的特殊函数来生成带有负载的 NaN。目前,我必须执行以下操作才能将其打印出来:

#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdint>

int main()
{
const auto x=std::nanl("1311768467463790325");
std::uint64_t y;
std::memcpy(&y,&x,sizeof y);
std::cout << (y&~(3ull<<62)) << "\n";
}

这依赖于 long double 的特定表示,即它是 80 位类型的 x87 FPU。是否有任何标准方法可以在不依赖此类实现细节的情况下实现这一目标?

最佳答案

C++ 从 ISO C 导入 nan* 函数。ISO C 在 7.22.1.3 中声明:

the meaning of the n-char sequence is implementation-defined

有评论

An implementation may use the n-char sequence to determine extra information to be represented in the NaN’s significand.

没有获取存储信息的方法。

关于c++ - 如何打印 NaN 的有效负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36372818/

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