首頁>Club>
如題
12
回覆列表
  • 1 # Real遊戲引擎開發者

    NaN(Not a Number,非數)是計算機科學中數值資料型別的一類值,表示未定義或不可表示的值。常在浮點數運算中使用。首次引入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系列、Motorola 68000系列、AIM PowerPC系列、ARM系列、Sun SPARC系列,採取了A為"is_quiet"標記位。即,如果A = 1,則該數是quiet NaN;如果A為零、其餘X部分非零,則是signaling NaN。IEEE 754-2008標準採納了這一方案。PA-RISC與MIPS處理器,採取了A為"is_signaling"標記位。恰與上述相反。

    返回NaN的運算有如下三種:

    至少有一個引數是NaN的運算不定式下列除法運算:0/0、∞/∞、∞/(−∞)、(−∞)/∞、(−∞)/(−∞)下列乘法運算:0×∞、0×−∞下列加法運算:∞ + (−∞)、(−∞) + ∞下列減法運算:∞ - ∞、(−∞) - (−∞)下列指數運算:0^0、∞^0、1^∞、∞^(−∞)產生複數結果的實數運算。例如:對負數進行開偶次方的運算對負數(包含−∞)進行對數運算對正弦或餘弦到達域以外的數進行反正弦或反餘弦運算

    大多數定長的整數格式無法顯式表示無效資料。

    Perl的BigInt包用“NaN”來表示不含有效整數資料字串的處理結果。

    注:

    ^ 如果浮點數的小數部分全為零,則該數為浮點無窮大。

  • 中秋節和大豐收的關聯?
  • 可以先練腹肌,再減腹部脂肪麼?或者同時進行練腹肌,減腹部脂肪?