¿Por qué el valor mínimo de una variable entera es -32768 en lugar de -32767?
En el código fuente, tanto el cero positivo como el negativo representan cero; en el código complementario, el cero positivo sigue siendo cero, pero el "cero negativo" se utiliza para representar el valor mínimo (-32768), lo que puede verse como una convención. Los números enteros en la memoria se almacenan en forma de complemento a dos. Si se almacenan en el prototipo, 0 se puede expresar como, por lo que sólo se puede expresar como -32767~32767. Pero si se almacena en complemento a dos, 0[+0 o -0] se determina de forma única como 0000 0000 0000 0000. Los bits adicionales se utilizan para representar el número entero más pequeño, que es -32768
0000 0000 0000 0000[+0] o 1000 0000 0000 0000[-0]
Entonces, el valor del número entero más pequeño es -32768