User Tools

Site Tools


Sidebar

projects

wcp1 (due 20220824)
ntr0 (due 20220831)
pct1 (bonus; due 20220831)
wcp2 (due 20220831)
dtr0 (due 20220907)
lob0 (due 20220907)
pct2 (due 20220907)
pct3 (bonus; due 20220907)
wcp3 (due 20220907)
wcp4 (due 20220914)
pct4 (due 20220915)
vcc0 (due 20220915)
vcc1 (due 20220921)
wcp5 (due 20220921)
pct5 (bonus; due 20220922)
gfo0 (due 20220928)
vcc2 (due 20220928)
wcp6 (due 20220928)
pct6 (due 20220929)
pct7 (bonus; due 20221005)
sss0 (due 20221005)
wcp7 (due 20221005)
bwp1 (bonus; due 20221019)
pct8 (due 20221019)
wcp8 (due 20221019)
pct9 (bonus; due 20221026)
wcp9 (due 20221026)
sss1 (due 20221028)
pctA (due 20221102)
sss2 (due 20221102)
wcpA (due 20221102)
gfo1 (due 20221103)
pctB (bonus; due 20221109)
wcpB (due 20221109)
fso0 (due 20221110)
pctC (due 20221116)
wcpC (due 20221116)
fso1 (due 20221117)
bwp2 (bonus; due 20221201)
fso2 (due 20221201)
pctD (bonus; due 20221201)
wcpD (bonus; due 20221201)
pctE (bonus; due 20221207)
wcpE (bonus; due 20221207)
gfo2 (due 20221208)
EoCE (due 20221219)
haas:fall2022:c4eng:signedvalues

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).

haas/fall2022/c4eng/signedvalues.txt · Last modified: 2012/09/15 15:06 by 127.0.0.1