C에서 IEEE 754 부동 소수점 표준 확인
C 컴파일러가 IEEE 754 부동 소수점 표준을 준수하는지 확인하는 방법은 일반적으로 다음을 통해 수행됩니다. 컴파일러가 정의합니다. 그러나 C에 사용된 기술은 C에 직접 적용되지 않을 수 있습니다.
C 특정 접근 방식
다행히도 C는 숫자 제한을 사용하여 이 검사를 수행하는 간단한 방법을 제공합니다. class:
<code class="cpp">std::numeric_limits<double>::is_iec559;</code>
이 표현식은 컴파일러에서 IEEE 754를 사용하는 경우 true로 평가되고 그렇지 않으면 false로 평가됩니다. float 유형에 대해서도 유사한 검사를 수행할 수 있습니다.
<code class="cpp">std::numeric_limits<float>::is_iec559;</code>
대체 방법
numeric_limits 접근 방식의 대안으로 Adam의 두 번째 부분을 적용할 수 있습니다. C에 대한 응답:
<code class="cpp">#include <limits> int main() { // Check for IEEE 754 compliance by checking for a finite number of float exponents. if (std::numeric_limits<float>::max_exponent == std::numeric_limits<int>::max()) { // Compiler uses IEEE 754. } else { // Compiler does not use IEEE 754. } }</code>
이 접근 방식은 IEEE 754가 부동 소수점 숫자에 대한 특정 범위의 지수를 정의한다는 사실에 의존합니다. 컴파일러의 최대 지수가 정수의 최대 크기와 일치하는 경우 IEEE 754를 준수할 가능성이 높습니다.
위 내용은 C 컴파일러가 IEEE 754 부동 소수점 표준을 준수하는지 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!