User Tools

Site Tools


Sidebar

projects

ntr0 (due 20220119)
pct1 (bonus; due 20220119)
wcp1 (due 20220119)
fwf0 (due 20220126)
pct2 (due 20220126)
wcp2 (due 20220126)
pct3 (bonus; due 20220202)
sof0 (due 20220202)
wcp3 (due 20220202)
dow0 (due 20220209)
pct4 (due 20220209)
wcp4 (due 20220209)
cbf0 (due 20220216)
gfo0 (due 20220216)
pct5 (bonus; due 20220216)
wcp5 (due 20220216)
bwp1 (bonus; due 20220302)
pct6 (due 20220302)
wcp6 (due 20220302)
cnv0 (due 20220309)
pct7 (bonus; due 20220309)
wcp7 (due 20220309)
cnv1 (due 20220316)
pct8 (due 20220316)
wcp8 (due 20220316)
cos0 (due 20220323)
gfo1 (due 20220323)
pct9 (bonus; due 20220323)
wcp9 (due 20220323)
bwp2 (bonus; due 20220406)
pctA (due 20220406)
sam0 (due 20220406)
wcpA (due 20220406)
oop0 (due 20220413)
pctB (bonus; due 20220413)
wcpB (due 20220413)
oop1 (due 20220420)
pctC (due 20220420)
wcpC (due 20220420)
oop2 (due 20220427)
pctD (bonus; due 20220427)
wcpD (bonus; due 20220427)
gfo2 (due 20220504)
pctE (bonus; due 20220504)
wcpE (bonus; due 20220504)
EoCE (due 20220512)
haas:spring2022:cprog: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/spring2022/cprog/signedvalues.txt · Last modified: 2012/09/15 15:06 by 127.0.0.1