[Math] The minimum negative integer value that can be represented using 32-bit signed representation

binary

As far as signed binary numbers are concerned for a 32bit machine, the leftmost bit is allocated for the sign. When I try to calculate the smallest negative integer value which can be stored in a machine, i follow the following steps:

  1. I assign the most significant bit as 1 (because it is negative)
  2. I place 1's into the remaining bits, thus the number of 1's I have for the magnitude of the number is 31.
  3. I convert this binary number to decimal:

$$ 2^{30}+ 2^{29}+…+2^1+2^0=2^{31}-1 $$

  1. With the negative sign, the smallest number is $$1-2^{31}$$

However the following source says otherwise. It says the smallest value is $$ -2^{31}$$ on the third page.

https://www.uio.no/studier/emner/matnat/math/MAT-INF1100/h12/kompendiet/kap4.pdf

What am I doing wrong here?

Best Answer

You are assuming the representation is signed-magnitude, which is a valid representation of negative numbers. Your answer is correct for that representation. Most computers use two's complement, which allows one more negative value. The most negative value is $1$ followed by $31$ zeros and represents $-2^{-31}$. The motivation is that you can do arithmetic in two's complement without worrying about whether numbers are positive or negative and it comes out right, simplifying the design of the chip.