中級 › 整数のオーバーフローが例外にならない理由 › パターン1
整数のオーバーフローが例外にならない理由
int型の範囲(約-21億〜21億)を超える計算をしても、既定では例外にならず値が折り返ります。
1 class Program { 2 static void Main(string[] args) { 3 int max = int.MaxValue; 4 int result = max + __; ^ 5 System.Console.WriteLine(result); 6 } 7 }
出力: -2147483648
空欄を埋めてビルドを通す
intの範囲は約21億までです。それを超えると例外にはならず、静かに最小値側へ折り返します(既定のuncheckedコンテキストのため)。
次の問題