-1
署名されたものと署名されていないものとを比較するにはどうすればよいでしょうか? (おそらく重複したが、私は正しい答えを見つけることができません)署名されたものと署名されていないものを正しく比較する方法
unsigned i = -1
int j = -1
...
if ((int)i != j) j= (int) j
または
if (int(i) != j) j=int(i)
それが違いを生むのでしょうか?私は前者を使用していますが、いくつかの極端なケースでは、jがコード内で非物理的に大きな数を返すことがわかります。
符号なしにはできません0未満です。だから、最大でi'結果 '上の-1の割り当て-unsignedの値を – Hayt
としてコメントしてくれてありがとうございます - いずれにせよ、最初に 'i = 0'があったら、それを比較する正しい構文は何でしょうか? – Terma
比較には違いはなく、どちらも実装定義の動作を呼び出す可能性があります。可能であれば、最初に署名付きと署名なしを混在させないでください。 (私の推薦:ビットマジックをしていない限り、符号なしのintから離れているが、多少の争点がある) –