上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
代码 2-5:整数溢出(<OverflowDemo>\Program.cs)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace OverflowDemo { class Program { static void Main(string[] args) { int x=20000000; int y = 100000; int result = x * y; Console.WriteLine(result); } } }
会是2000000000000 吗?int类型好像不能存放这么大的数值!实际的运行结果是-1454759936,结果哪来的?这就是因为发生了整数的溢出,这个结果实际上对于我们是没有意义的,甚至比没有结果更没有意义。
在大多数情况下,程序计算结果的正确性非常重要,这时我们必须确保每一步运算的正确性,为了防止像上面那样由于整数溢出而产生的结果错误,我们可以使用checked运算符来检查可能的整数溢出现象,如代码2-6所示,我们使用checked运算符修改了代码2-5中的内容。