ホームページ > バックエンド開発 > C++ > C コンパイラが IEEE 754 浮動小数点標準に準拠しているかどうかをどのように判断しますか?

C コンパイラが IEEE 754 浮動小数点標準に準拠しているかどうかをどのように判断しますか?

DDD
リリース: 2024-10-28 21:06:02
オリジナル
347 人が閲覧しました

How do you determine if a C   compiler conforms to the IEEE 754 floating point standard?

C での IEEE 754 浮動小数点標準のチェック

C コンパイラが IEEE 754 浮動小数点標準に準拠しているかどうかの判断は、通常、次のように行われます。コンパイラ定義。ただし、C に使用される手法は C に直接適用できない場合があります。

C 固有のアプローチ

幸いなことに、C では、numeric_limits を使用してこのチェックを実行する簡単な方法が提供されています。 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 の 2 番目の部分を適応させることができます。 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート