unsigned type has the same definition as the
signed type, so most operations are the same.
The difference comes up when you try to treat something of the
unsigned type as a number. It will be treated as an unsigned binary-coded integer, with the most significant bit in the first position in the array.
Have a look at the other operations in
std_logic_arith for examples of how this type can be used.