はじめに
今回はオーバーフローの検知をしてみる記事になります!
そのためにはchecked
というキーワードを用いることでできるようになります。
早速みていきましょう。
デフォルトはどうなるか
まずはデフォルトでオーバーフローさせるとどうなるかみてみましょう。
int a = int.MaxValue; a = a + 1; Console.WriteLine(a);
-2147483648
本来は2147483647 + 1 = 2147483648
であるはずですが、オーバーフローして負の数になってしまっています。
これはデフォルトではオーバーフローはすべて無視(unchecked
)される性質にあります。
オーバーフローを検知する
checked
をつけて再度実験してみましょう。
checked { int a = int.MaxValue; a = a + 1; Console.WriteLine(a); }
するとエラーが出てきます。
これでオーバーフローを検知してエラーを吐き出すことができました。
さいごに
階乗や累乗といった大きい計算ではオーバーフローがおきがちなので、是非うまく活用してみてください。
ではまた。