7
整数型が範囲外の場合、最大値+ 1が加算/減算されます(範囲内のどの部分に依存するかによって異なります)。 例えば、Cの暗黙の変換は、なぜ動作しますか?
unsigned short num = 65537;
numが1の値(65536を差し引いた)を有するであろう。 私の質問です:なぜそれが起こるのですか? 私の直感は、最大値は常に1111ですので、キャリーフラグとオーバーフローフラグと関係があることを教えています....
ありがとうございます!符号付き整数のNビットunsigned型に変換するためのルールを2の補数を使用するマシンで
これは切り捨てられます。 – Mehrdad
基本的にすべての可能な警告を有効にしてコンパイルするべき完全な例です。なぜそれが標準になっているのかというと...考えていない:p。 (具体的には1を意味しない限り、それはちょうど2の補数オーバーフローです) – Corbin
このような警告メッセージの例: '警告:暗黙的に符号なし型に切り捨てられた大きな整数' – curiousguy