0

-infinityC++、Java などで表現するにはどうすればよいですか?

私の演習では、変数を で初期化して-infinity、それが非常に小さい数値であることを示す必要があります。

計算する-infinity - 3と、-infinity + 5それも結果になるはず-infinityです。

で初期化してみたINT_MINのですが、計算するINT_MIN - 1と上限が出てしまい、次のようなテストができません。if(value < INT_MIN) var = INT_MIN;

では、どうすればそれを行うことができますか?

4

6 に答える 6

1

数値が存在しない可能性がある場合は、ドメインから数値を選択して「存在しない」ことを表すのではなく、関心のあるすべての整数と「存在しない」状態の両方を持つ型を選択します。

(延期された) C++1y の提案optionalはその例です: anoptional<int>が存在しないか、整数です。整数にアクセスするには、最初にそれが存在するかどうかを尋ねます。存在する場合は、オプションを「逆参照」して取得します。

感染するオプションを作成する: ほとんどすべてのバイナリ操作で、いずれかの値が存在しない場合に結果に感染するものは、このアイデアの簡単な拡張です。

于 2013-11-08T13:18:38.673 に答える
0

有限のビット数に格納する必要があるため、無限の値を真に表現することはできません。特定の型 (典型的な浮動小数点仕様など) には無限のシンボリック バージョンがありますが、厳密な意味での無限とまったく同じようには動作しません。必要な動作をエミュレートするには、プログラムに追加のロジックを含める必要があります。

于 2013-11-08T13:11:50.327 に答える
0

たとえば、使用できる最小値を表したい場合

整数の場合

int a = Integer.MIN_VALUE;

float、double などは、各オブジェクト ラッパーの最小値を取得します。

于 2013-11-08T13:09:41.923 に答える
0

数値を -infinite として定義し、数値から何かを加算または減算するときに、変数がその疑似数値と等しいかどうかを最初に確認します。その場合は、そのままにしておいてください。

しかし、Java の Double や C++ の std など、実装された機能を提供するライブラリ関数が見つかる場合があります。

于 2013-11-08T13:10:00.307 に答える