Saltar al contenido

¿Por qué el valor máximo de Int32 es 0x7FFFFFFF?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *