nan是什么意思

nan是什么意思

NaN意思是非数。

NaN(Not a Number,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用,是以浮点数表示实数时的特殊值。首次引入NaN的是1985年的IEEE 754浮点数标准。

返回NaN的运算有如下三种:

1、至少有一个参数是NaN的运算。

2、不定式:

(1)下列除法运算:0/0、∞/∞、∞/−∞、−∞/∞、−∞/−∞。

(2)下列乘法运算:0×∞、0×−∞。

(3)下列加法运算:∞ + (−∞)、(−∞) + ∞。

(4)下列减法运算:∞ - ∞、(−∞) - (−∞)。

3、产生复数结果的实数运算。如:对负数进行开偶次方的运算。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-08-25

NaN(Not a Number,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用。首次引入NaN的是1985年的IEEE 754浮点数标准。




简介

NaN(NotaNumber,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用。首次引入NaN的是1985年的IEEE 754浮点数标准。



浮点数

在浮点数运算中,NaN与无穷大的概念不同,尽管两者均是以浮点数表示实数时的特殊值。无效操作(Invalid Operation)同样也不同于算术溢出(可能返回无穷大)和算术下溢出(可能返回最小的一般数值、特殊数值、零等)。


IEEE 754-1985中,用指数部分全为1、小数部分非零表示NaN。以32位IEEE单精度浮点数的NaN为例,按位表示即:S111 1111 1AXX XXXX XXXX XXXX XXXX XXXX,S为符号位,符号位S的取值无关紧要;A是小数部分的最高位( the most significant bit of the significand),其取值表示了NaN的类型:X不能全为0,并被称为NaN的payload。


大多数处理器,包括Intel与AMD的x86系列、Motorola68000系列、AIMPowerPC系列、ARM系列、SunSPARC系列,采取了A为'is_quiet'标记位。即,如果A = 1,则该数是quiet NaN;如果A为零、其余X部分非零,则是signaling NaN。IEEE 754-2008标准采纳了这一方案。


PA-RISC与MIPS处理器,采取了A为'is_signaling'标记位。恰与上述相反。


以上内容参考百度百科-nan

本回答被网友采纳
第2个回答  推荐于2017-11-23
NaN,是Not a Number的缩写。 NaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。由上面的表中可以看出,对于单精度浮点数,NaN 表示为指数为 emax + 1 = 128(指数域全为 1),且尾数域不等于零的浮点数。IEEE 标准没有要求具体的尾数域,所以 NaN 实际上不是一个,而是一族。不同的实现可以自由选择尾数域的值来表达 NaN,比如 Java 中的常量 Float.NaN 的浮点数可能表达为 01111111110000000000000000000000,其中尾数域的第一位为 1,其余均为 0(不计隐藏的一位),但这取决系统的硬件架构。Java 中甚至允许程序员自己构造具有特定位模式的 NaN 值(通过 Float.intBitsToFloat() 方法)。比如,程序员可以利用这种定制的 NaN 值中的特定位模式来表达某些诊断信息。本回答被提问者采纳
相似回答