タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

*あとで読むとCに関するp260-2001fpのブックマーク (1)

  • [迷信] abs は常に非負の値を返す | 株式会社きじねこ

    abs 関数というのは絶対値を求める関数です。C では int 型の引数を受け取り int 型の値を返します。C++ では、int 版以外に、long 版、float 版、double 版、long double 版、std::complex クラステンプレート版が多重定義されています。絶対値を求める関数ですから、ゼロまたは正の値を返すのが数学的に正しい振る舞いです。 ところが、現実には必ずしもそうはならない場合があります。まずは、浮動小数点数や複素数の引数として非数(NaN)が渡された場合がそうです。これについては、それほど大きな問題になることはないでしょう。問題は整数の場合です。 abs 関数に INT_MIN を与えた場合を考えてみてください。負の値の内部表現に 2 の補数を使う処理系(実質的にすべての処理系と考えても、あながち間違いとはいえません)では、INT_MIN の絶対値は

  • 1