C/C++ NaN 상수(리터럴)
이 작업을 통해 A/S를 할당할 수 있습니까?NaN
에 대해서double
또는float
C/C++로요?JavaScript와 마찬가지로 다음 작업을 수행합니다.a = NaN
나중에 변수가 숫자인지 확인할 수 있습니다.
주식회사,NAN
에 선언되어 있다.<math.h>
.
C++에서는std::numeric_limits<double>::quiet_NaN()
에 선언되어 있다.<limits>
.
그러나 값이 NaN인지 확인하기 위해 다른 NaN 값과 비교할 수 없습니다.대신 사용isnan()
부터<math.h>
C, 또는std::isnan()
부터<cmath>
C++로 표시됩니다.
다른 사람들이 지적한 바와 같이, 당신이 찾고 있는 것은std::numeric_limits<double>::quiet_NaN()
cppreference.com 문서를 더 선호합니다.특히 이 진술이 좀 애매하기 때문에:
std::numeric_limits가 다음과 같은 경우에만 의미가 있습니다.: has_quiet_NaN == true.
그리고 이 사이트에서 이것이 무엇을 의미하는지 알아내는 것은 간단했습니다. 이 사이트의 섹션에는 다음과 같은 내용이 있습니다.
이 상수는 모든 부동소수점 유형에 대해 의미가 있으며 std::dis_iec559 == true일 경우 true임을 보증합니다.
여기서 설명한 바와 같이 만약true
사용하시는 플랫폼이 지원하는IEEE 754
표준.이 앞의 스레드에서는 이것이 대부분의 상황에서 해당된다는 것을 설명합니다.
이것은, C++ 의 numeric_limit 를 사용해 실행할 수 있습니다.
http://www.cplusplus.com/reference/limits/numeric_limits/
검토해야 할 방법은 다음과 같습니다.
infinity() T Representation of positive infinity, if available.
quiet_NaN() T Representation of quiet (non-signaling) "Not-a-Number", if available.
signaling_NaN() T Representation of signaling "Not-a-Number", if available.
NaN을 더블 또는 플로트에 할당하는 것이 가능합니까?
네, C99부터 (C++11)<math.h>
에는 다음 기능이 있습니다.
#include <math.h>
double nan(const char *tagp);
float nanf(const char *tagp);
long double nanl(const char *tagp);
그들의 것과 같다.strtod("NAN(n-char-sequence)",0)
상대편과NAN
할당에 사용합니다.
// Sample C code
uint64_t u64;
double x;
x = nan("0x12345");
memcpy(&u64, &x, sizeof u64); printf("(%" PRIx64 ")\n", u64);
x = -strtod("NAN(6789A)",0);
memcpy(&u64, &x, sizeof u64); printf("(%" PRIx64 ")\n", u64);
x = NAN;
memcpy(&u64, &x, sizeof u64); printf("(%" PRIx64 ")\n", u64);
샘플 출력: (실장 상황에 따라 다름)
(7ff8000000012345)
(fff000000006789a)
(7ff8000000000000)
...변수가 숫자인지 아닌지를 확인합니다.
사용하다isnan(), std::isnan()
부터<math.h>, <cmath>
.
네, 포인터의 개념에 따라 int 변수에 대해 다음과 같이 수행할 수 있습니다.
int *a;
int b=0;
a=NULL; // or a=&b; for giving the value of b to a
if(a==NULL)
printf("NULL");
else
printf(*a);
그것은 매우 간단하고 엄격하다.Arduino IDE에서 작동했습니다.
언급URL : https://stackoverflow.com/questions/16691207/c-c-nan-constant-literal
'programing' 카테고리의 다른 글
1.#의 기능INF00, -1.#IND00 및 -1.#IND는요? (0) | 2022.07.28 |
---|---|
Windows가 fork()에 가장 가까운 것은 무엇입니까? (0) | 2022.07.28 |
Project Lombok을 사용해도 안전한가요? (0) | 2022.07.28 |
State Push는 함수가 아닙니다. (0) | 2022.07.28 |
기본 기능이 반환된 것을 받으려면 어떻게 해야 합니까? (0) | 2022.07.28 |