nan是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nan是啥意思相关的知识,希望对你有一定的参考价值。
nan是什么意思
NaN意思是非数。
NaN(Not a Number,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用,是以浮点数表示实数时的特殊值。首次引入NaN的是1985年的IEEE 754浮点数标准。
返回NaN的运算有如下三种:
1、至少有一个参数是NaN的运算。
2、不定式:
(1)下列除法运算:0/0、∞/∞、∞/−∞、−∞/∞、−∞/−∞。
(2)下列乘法运算:0×∞、0×−∞。
(3)下列加法运算:∞ + (−∞)、(−∞) + ∞。
(4)下列减法运算:∞ - ∞、(−∞) - (−∞)。
3、产生复数结果的实数运算。如:对负数进行开偶次方的运算。
参考技术ANaN(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
参考技术B 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 值中的特定位模式来表达某些诊断信息。本回答被提问者采纳NAN是啥意思?
参考技术ANaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。NaN 实际上不是一个数,而是一族。
NAN Not A Number就是代表不是一个数据。一般出现这个东西的原因有两个:
你的程序里出现0作为分母的运算,这个时候可以考虑把被除矩阵整体加一个无限小量,例如1e-10。这样可以消除0作分母的现象。
如果上面这个做法不管用,就是你自己的算法和编程的问题了,导致结果不收敛,发散。
参考资料
在matlab中NAN是什么意思.豆丁网[引用时间2017-12-30]
以上是关于nan是啥意思的主要内容,如果未能解决你的问题,请参考以下文章