Por que o valor máximo do Int32 é 0x7FFFFFFF?

Eu vi nos documentos MSDN que o valor máximo deInt32 é2,147,483,647hexadecimal0x7FFFFFFF.
http://msdn.microsoft.com/pt-br/library/system.int32.maxvalue.aspx

Eu acho que se éInt32 ele deve armazenar o valor inteiro de 32 bits que finalmente deve ser4,294,967,295 e hexadecimal0xFFFFFFFF.

Minha pergunta é por queInt32 lojas31 valor inteiro de bits?