ホームページ >バックエンド開発 >C++ >C コンパイラが IEEE 754 標準に準拠しているかどうかを確認するにはどうすればよいですか?

C コンパイラが IEEE 754 標準に準拠しているかどうかを確認するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 09:10:291076ブラウズ

How to Determine if a C   Compiler Adheres to the IEEE 754 Standard?

コンパイラによる C での IEEE 754 標準の使用の決定

コンパイラが IEEE 754 標準に準拠しているかどうかを確認するために特定の定義チェックが必要な C とは異なり、C ではより直接的なアプローチ。 C 標準には、std 名前空間内に numeric_limits クラスが含まれています。コンパイラが IEEE 754 を使用しているかどうかを判断するには、次のように静的メンバー is_iec559 にアクセスします。

<code class="cpp">std::numeric_limits<double>::is_iec559;</code>

または:

<code class="cpp">std::numeric_limits<float>::is_iec559;</code>

この式は、IEEE 754 が使用されている場合は true を返します。それ以外の場合は false。

あるいは、アダムの回答で示唆されているように、別の方法を採用することもできます。

<code class="cpp">#include <iostream>
#include <cmath>

int main() {
    double d = -0.0;
    std::cout << (std::signbit(d) != std::signbit(-d)) << std::endl;
    return 0;
}</code>

コンパイラが IEEE 754 をサポートしている場合、このコードは 0 を出力します。それ以外の場合は、1 を出力します。

以上がC コンパイラが IEEE 754 標準に準拠しているかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。