Questo pezzo di codice, anche se è troppo scolastico, lo so..., magari permetterà ad alcuni di capire meglio perché MinValue = MaxValue + 1 e cosa vuol dire complemento binario:
using System;
class Foo
{
static void Main()
{
Console.WriteLine("MinValue in binario {0}", Convert.ToString(int.MinValue, 2).PadLeft(32, '0'));
Console.WriteLine("MaxValue in binario {0}", Convert.ToString(int.MaxValue, 2).PadLeft(32, '0'));
Console.WriteLine("MinValue {0} il complemento binario di MaxValue", int.MinValue == ~int.MaxValue ? "è" : "non è");
Console.Read();
}
}