C에서 IEEE 754 부동 소수점 표준 확인
C 컴파일러가 IEEE 754 부동 소수점 표준을 준수하는지 확인하는 작업은 일반적으로 다음을 통해 수행됩니다. 컴파일러가 정의합니다. 그러나 C에 사용된 기술은 C에 직접 적용되지 않을 수 있습니다.
C - 특정 접근 방식
다행히 C는 숫자 제한을 사용하여 이 확인을 수행하는 간단한 방법을 제공합니다. class:
std::numeric_limits::is_iec559;
이 표현식은 컴파일러에서 IEEE 754를 사용하는 경우 true로 평가되고 그렇지 않으면 false로 평가됩니다. float 유형에 대해 유사한 검사를 수행할 수 있습니다:
std::numeric_limits::is_iec559;
대체 방법
numeric_limits 접근 방식의 대안으로 C에 대한 Adam의 응답의 두 번째 부분을 조정할 수 있습니다.
#include
int main() {
// Check for IEEE 754 compliance by checking for a finite number of float exponents.
if (std::numeric_limits::max_exponent == std::numeric_limits::max()) {
// Compiler uses IEEE 754.
} else {
// Compiler does not use IEEE 754.
}
}
이 접근 방식은 IEEE 754가 부동 소수점 숫자에 대한 특정 범위의 지수를 정의한다는 사실에 의존합니다. 컴파일러의 최대 지수가 정수의 최대 크기와 일치하는 경우 IEEE 754를 준수할 가능성이 높습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3