How can I convert 2's complement to decimal?
Solution 1:
Here is the process to convert a negative two's complement number back to decimal:
(1) flip all the bits,
(2) add 1, and
(3) interpret the result as a binary representation of the magnitude and add a negative sign
So, for your example, we have:
$$1111~1111~1011~0101 \xrightarrow{(1)} 0000~0000~0100~1010 \xrightarrow{(2)} 0000~0000~0100~1011 \xrightarrow{(3)} -75$$
It looks like you wrote the wrong binary and meant:
$$1111~1111~1011~1011~0101 \xrightarrow{(1)} 0000~0000~0100~0100~1010 \xrightarrow{(2)} 0000~0000~0100~0100~1011 \xrightarrow{(3)} -1099$$
Of course, in Hex, you can invert all the bits and add 1 and take a negative magnitude.
Regards
Solution 2:
If $x$ is an $n$ digit number written in two's complement, then ${\small\sim}x +1 = -x$, where ${\small\sim}x$ is the $n$-digit binary NOT of $x$. In your case, ~0xFFBB5 + 1 = 0x0044B = 1099
, so your number is $-1099$.
Solution 3:
A very simple way of converting 2's complement negative number to decimal. Let a number 11010110, so the decimal representation of it is, –2^7 + 2^6 + 2^4 + 2^2 + 2^1 = – 128 + 64 + 16 + 4 + 2 = – 42 the idea is same as converting a normal binary number to decimal but with a negative sign with left most binary digit.