======Signed vs. Unsigned Values====== ^ Binary (Base 2) ^ Signed Decimal (Base 10) ^ Unsigned Decimal (Base 10) ^ Hexadecimal (Base 16) | | 0 0 0 0 | 0 | 0 | 0x0 | | 0 0 0 1 | 1 | 1 | 0x1 | | 0 0 1 0 | 2 | 2 | 0x2 | | 0 0 1 1 | 3 | 3 | 0x3 | | 0 1 0 0 | 4 | 4 | 0x4 | | 0 1 0 1 | 5 | 5 | 0x5 | | 0 1 1 0 | 6 | 6 | 0x6 | | 0 1 1 1 | 7 | 7 | 0x7 | | 1 0 0 0 | -8 | 8 | 0x8 | | 1 0 0 1 | -7 | 9 | 0x9 | | 1 0 1 0 | -6 | 10 | 0xA | | 1 0 1 1 | -5 | 11 | 0xB | | 1 1 0 0 | -4 | 12 | 0xC | | 1 1 0 1 | -3 | 13 | 0xD | | 1 1 1 0 | -2 | 14 | 0xE | | 1 1 1 1 | -1 | 15 | 0xF | A signed value is when we take a bit (usually the //most significant bit//) and reserve it for the sign. This **shifts** the representable range of values, straddling 0. We still have the **same** quantity of values as in the unsigned range, we just represent them differently. We use a technique called **two's complement** to represent signed values (the negative values, specifically). In this case, a leading 0 indicates a positive value, and a leading 1 indicates a negative value. For example- 1000, leading one, so negative. Negative what? Step one- invert: 1000 becomes 0111. Step two- add one: 0111+1 = 1000. This is a **-8**. Another example: 1101. Invert: 0010 Add one: 0010+1 = 0011 (this is a 3, and we know we started with a leading 1, so 1101 is **-3**).