Solución:
Es porque es un entero con signo. Un entero de 32 bits sin signo le da el valor esperado.
Consulte esta página de MSDN: http://msdn.microsoft.com/en-us/library/exx3b86w(v=vs.80).aspx
Para obtener una explicación más detallada de por qué esto es así, consulte el enlace en la respuesta de Jackson Popes relacionada con la representación del número de complemento de dos.
También algunas lecturas adicionales.
Porque se usa un bit para almacenar el signo (Int32 puede ser menor que cero).
http://en.wikipedia.org/wiki/Two%27s_complement
Int32 e Int64 están firmados para que puedan manejar valores enteros de -capacidad / 2 a (capacidad / 2) -1 (para cero), por eso el valor máximo no es el que esperaba. Pero puede obtener lo que desea utilizando un int sin signo para tener solo números positivos.