2013-03-08 7 views
5

NAN 값은 Not가 아니고 IND 값은 Indeterminate number를 의미합니다. 그러나이 둘의 차이점은 무엇입니까? 우리는 어떻게 둘 다 C++로 표현할 수 있습니까? 이중에 저장 될 수있는보다 큰 양수를 생성 할 것이다 당신의 작업은, 작업이 리눅스IND 번호와 NAN 번호의 차이점

에 Windows 또는 INF에

1.#INF를 반환하는 경우 일부 작업은 광장 복용으로, 수학적 이해가되지 않는

+0

IND? 아니면 INF? INF는 '무한대'의 표준입니다. –

답변

5

그러나이 둘 사이의 차이점은 무엇입니까.

둘 다 똑같습니다. 일부 플랫폼에서는 숫자가 아닌 NaN을 표시하는 반면, 다른 플랫폼에서는 IND의 변형으로 표시하도록 선택합니다.

우리는 어떻게 둘 다 C++로 표현할 수 있습니까?

std::numeric_limits<double>::quiet_NaN() (또는 float 또는 long double, 당신이 선호하는 경우).

+1

분명히, 그들은 동일하지 않습니다. Microsoft 플랫폼에서 IND는 NaN의 특별한 경우 인 것으로 보입니다. 특히 IND의 경우 지수는 0xFF이고 가수는 0x400000입니다. 다른 0이 아닌 가수는 NaN을 제공합니다. – ysap

2

음수의 루트입니다. 두 숫자 모두 sqrt(-1.0)log(-1.0)은 "숫자가 아님"에 대한 일반적인 용어 인 NaN을 반환합니다.

Windows에서 이 표시되는 동안 Windows는 -1.#IND ("indeterminate"는 "IND")으로 NaN을 표시합니다. NaN을 반환하는 다른 연산에는 0/0, 0 * ∞ 및 ∞/∞가 포함됩니다.

Refernce Link1Refernce Link2

+1

Windows와 Linux가 아니며, NaN을 표시하는 방법을 지시하는 컴파일러의 표준 라이브러리입니다. –

+0

"일부 연산은 수학적으로 이해하지 못합니다." 연산은 수학적으로 이해할 수 있지만 결과는 부동 소수점 숫자로 저장할 수 없습니다. 즉, sqrt (-1.0)은 i가 될 수없는 허수입니다. float에 보관 됨 –

관련 문제