为什么它不会抛出OverFlow Exception?

时间:2014-10-21 11:10:15

标签: c# .net

样本1

int a = Int32.MinValue;
int b = -a;
Console.WriteLine("a={0}",a);
Console.WriteLine("b={0}", b);

结果

a=-2147483648
b=-2147483648

样本2

int a = Int32.MinValue;
int b = a-1;
Console.WriteLine("a={0}",a);
Console.WriteLine("b={0}", b);

结果

a=-2147483648
b=2147483647

在两个示例中:为什么不抛出溢出异常。当我在java环境中尝试这些示例时,我得到了相同的结果。有没有人可以解释这种情况?

0 个答案:

没有答案