39

に設定できますintNaN?はいの場合、どうすればあるかどうかを確認できintますNaNか?

4

5 に答える 5

52

いいえ、NaNは浮動小数点値です。

anの可能な値はすべてint数値です。

編集

標準は言う:

6.2.6.2 40)1つのパディングビットがパリティビットである場合など、パディングビットの組み合わせによってはトラップ表現が生成される場合があります。とにかく、有効な値に対する算術演算は、オーバーフローなどの例外的な条件の一部として以外はトラップ表現を生成できません。これは、符号なし型では発生しません。

したがって、実装固有の無効な整数値が存在する可能性がありますが、それらを生成するための定義された方法はありません。

于 2010-10-16T15:17:49.803 に答える
6

一般的に(そして特にC ++の場合、私の知る限りでは):いいえ

整数NaN

ほとんどの固定サイズの整数形式には、無効なデータを明示的に示す方法がありません。

于 2010-10-16T15:18:50.673 に答える
4

失敗を処理するための最も適切なAPIは、次のようなAPIで2番目の整数エラーコードを返すことだと思います。

int myfunc(args, int* realReturn);

返されるintはエラーコードです。

前の出力は、呼び出しコードのポインターとして渡されます。

int myInt;
if (myFunc(args, &myInt) != 0) {
//handle error
}
于 2019-06-22T12:57:51.153 に答える
2

Nanのような特定のint値はありません。通常、人々はこの値を表すために大きな整数を使用します。unsigned intの場合、通常は-1を使用します。

于 2010-10-16T15:42:50.763 に答える
1

intいいえ、をNaNに設定することはできません。

于 2010-10-16T15:18:09.637 に答える