Do mojego zrozumienia, że powinien dać błąd przepełnienia i kiedy piszę to tak:Dlaczego int.MaxValue - int.MinValue = -1?
public static void Main()
{
Console.WriteLine(int.MaxValue - int.MinValue);
}
to niepoprawnie dać mi błąd przepełnienia.
Jednakże:
public static void Main()
{
Console.WriteLine(test());
}
public static Int32 test(int minimum = int.MinValue, int maximum = int.MaxValue)
{
return maximum - minimum;
}
wyświetli -1 Dlaczego to zrobić? Powinien rzucić błąd, ponieważ jest to wyraźnie przepełnienie!
jestem jedyną osobą, która uczono, że 2147483647 - (-?. 2147483648) jest rzeczywiście 4294967295 – Aelphaeis
tak 4294967295 nie jest int – harold
Co byś oczekiwał, 2147483647 - 2147483648 dać ci? –