訂購事宜
以下程式碼中存在溢位
int x = int.MaxValue;
Console.WriteLine(x + x + 1L); //prints -1
而在以下程式碼中沒有溢位
int x = int.MaxValue;
Console.WriteLine(x + 1L + x); //prints 4294967295
這是由於操作的從左到右排序。在第一個程式碼片段中,x + x
溢位,之後它變成了 long
。另一方面,x + 1L
變為 long
,然後將 x
新增到此值。