signed vs unsigned:
singed means the variable type can store negative or positive values.
unsigned means it can only hold positive values.

The way it works:
An unsinged variable uses its whole memory space to to store values greater or equal to 0
A signed varaible splits the variable memori space in two: half negative, half positive.

Example:
an int is stored on 4 bytes. the range of possible values is -32767 to 32767
an unsigned int is also stored on 4 bytes, but the range of possible values is 0 to 65535

Hope this helps...

Ammo