projects
- intro (due 20140124)
- "Hello, World!" (due 20140131)
- data types (due 20140207)
- Squares (due 20140214)
- Day of Week (due 20140221)
- Nikhilam (due 20140228)
- Multiply by 11 (due 20140307)
- Vertically and Crosswise (due 20140321)
projects
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).