首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NaN有两种: signaling_NaN,quiet_NaN,和.南本身?

NaN有两种: signaling_NaN,quiet_NaN,和.南本身?
EN

Stack Overflow用户
提问于 2014-05-26 02:41:20
回答 1查看 1.2K关注 0票数 2

我一直以为有两种南的:安静和信号。

但后来我意识到,NAN宏的计算值两者都不算。

在VisualC++中,std::numeric_limits<float>::quiet_NaN()显示为1.#QNAN000

在VisualC++中,std::numeric_limits<float>::signaling_NaN()显示为1.#QNAN000

但在VisualC++中,NAN也显示为-1.#IND0000.这两种情况都不是。

  1. 那么,什么类型的NaN,是NAN常数?是信号还是非信号?
  2. 什么时候我应该使用NAN而不是其他的,什么时候应该避免它,为什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-26 02:49:07

您的机器没有信令NaN。我认为Q in #QNAN代表的是安静。检查numeric_limits::has_signaling_NaN。至于signaling_NaN,标准是这样的:

对于has_signaling_NaN != false的所有专门化都有意义。is_iec559 != false所需的专门化。

因此,它可能是必需的,但没有意义的…。自然要做的事情是提供一个安静的NaN。

我还没有找到QNANIND的权威资源,但它们似乎都是安静的NaNs。潜在有数以百万计的不同的NaNs,每个尾数值一个。如果我猜的话,IND可能就像ind‍eterminate值的错误代码,例如0/0。对于一般的NAN宏来说,这并不是一个合适的选择,但是在以这种方式定义C数值绑定之后,它们可能会被困在这个宏中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23861999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档