0
A
答えて
2
、はい、彼らは等価です:x
が負の場合、(unsigned) x
はINT_MAX
より大きくなります。これは必然的に必ず(unsigned) x < (unsigned) N
が偽になることを意味します。
まれにしか実装されていませんが、同等ではありません。実装では、とunsigned int
に同じ値のビット(INT_MAX == UINT_MAX
)を与えることができます。この場合、(unsigned) x
はINT_MAX
より大きくならず、(unsigned) x < (unsigned) N
は依然として真である場合があります。
1
UINT_MAXがINT_MAXの場合、線は等価ではありません。 Cはそのような実装を可能にする。ラップアラウンドその場合
は、xはunsigned int型にint型から変換されたとき、例えばN.
よりも大きい値を生成しないことがあります。Nの値はINT_MAXで、値をxの値は-2です。符号付き整数から符号なし整数への変換が完了すると、Nの値はINT_MAXになりますが、xの値はINT_MAX-1になります。したがって、2番目のif文は使用されますが、最初のif文は使用されません。
実際には、おそらくそのような実装には遭遇しません。 UINT_MAXの値がINT_MAXより大きい場合、if文は同じ動作をします。この動作は、常にアサートできます。
static_assert(UINT_MAX > INT_MAX , "");
関連する問題
- 1. は、これら2つのlinq式は機能的に同等ですか?
- 2. なぜこれらの2つのステートメントは同等ですか
- 3. これら2つのスニペットは厳密に同等ですか?
- 4. Cからのこれらの2つのMIPS変換は同等ですか?
- 5. これらの2つの比較式は同じですか?
- 6. トリプル等価式評価
- 7. 2つのPersistenceContextの等価性のテスト
- 8. 2つのオブジェクトの等価性
- 9. どちらの式が等価ですか?
- 10. デフォルトのクラスコンストラクタの2つの形式は同等ですか?
- 11. これらの2つの書式設定の日付メソッドは本当に同等ですか?
- 12. これらの2つのtypedefの実装は、構造が同等ですか?
- 13. これら2つのコスト関数はオクターブで同等ですか?
- 14. ラムダ式のSQL WHEREの等価性は何ですか?
- 15. 2つのネストされた辞書のユニットテストの等価性
- 16. これらの2つのJavaScript式の違いは何ですか?
- 17. Smalltalk - 2つの文字列を等価で比較する
- 18. 2つのxドキュメントを等価で比較する
- 19. C#2つの文字列、視覚的に同じ、まだそれらは等しくない等価
- 20. これら2つの式の違いは何ですか? Google CALC CONFUSION
- 21. CSSは2つの等価の列を動的高さ
- 22. ここで節の等価理解
- 23. 等しい値の2つの文字列変数が等価でない(アンドロイド)
- 24. 2つのファイルの一部の等価性を確認する
- 25. jQuery $ .mapの等価な等価物ですか?
- 26. gridgainからigniteへの移植 - これらのgridgainメソッドの等価な点
- 27. この場合、 "npm start"の等価ノードコマンドとは何ですか?
- 28. Idris - 2つの数値の等価性を証明する
- 29. 2つの変数(Python)で2つの不等式のいずれかを見つける
- 30. ラムダで2つの損失とフィルター等価を比較
はい。それは[this]の特定の場合です(http://stackoverflow.com/a/17095534/995714) –
質問が投票された理由を知りたい –
あなたの問題を解決した答えがあると思われる場合は、それを受け入れることを検討してください(答えの左側に緑色のチェックマークが付きます)。これはコミュニティに質問が答えられたことを示し、あなたと回答者にいくつかの評判を与えます。 – 2501