Different ways to calculate

First things first, how is any data(eg. strings, commands,etc...) represented inside the computer? Now, computer understands only two digits: 0 and 1. These are called binary digits (binary, for double...). Well, all the operations can be carried out,anyway, like multiplication, addition, division,substraction...
Let's give some examples:

010010011 = 0*256 + 1*128 + 0*64 +0*32 + 1*16 + 0*8 + 0*4 + 1*2 + 1*1 = 147
0111 = 0*8 + 1*4 + 1*2 + 1*1 = 7
Ok, let's try to add them.
147+7=154, is it? Let's check it!

  10010011
+
           111
  ------------
  010011010 = 0*256 + 1*128 + 0*64 + 0*32 + 1*16 + 1*8 + 0*4 + 1*2 + 0*1 = 154
154=154? So, we can add, hurray!

There is somewhat harder situation with substraction... What is substraction in fact? We just add a negative number, yes? But how can a computer represent a negative number? Where would he place the sign?
Ok, guys, now we notice that if we have some number and we add the same number, but with opposite sign, we get zero. Ok, but how does it get with the binary situation?
So, let's imagine we do count only exact number of digits in each number and if we get a new digit, we don't care about it. Then let's take our number 10010011 and invert it...
010010011 => 101101100.
Now what would happen if we add them? Yeah, that's right we'll get a number, all the digits of which are 1!
   010010011
+
   101101100
  -------------
   111111111

What will happen if we now add 1 to the resulting number? We'll get 1000000000. But we've decided that we count only exact number of digits => we get 000000000 = 0.
Ok, now does it solve our problem? No, but it does give some results:
1) (Value) + (inverted value) + 1 = 0
So we can consider (inverted value) + 1 as a negative representation of the Value. Now, let's see what is the difference between these inverted and uninverted values.
The main difference is that we had 0 as a first digit and now have 1. So, if we want to conduct operations with signed values we can consider the first bit as a sign bit.
Ok, I think that's enough on substraction.

Now, what for was this all? Are we to calculate in binary values? It's so hard, strange,etc...
You aren't the only ones who thought the same way! So now we do have another way, hexadecimal values. What is this you can ask?
It is plain, let's look closer at the following binary number 1101. It has 4 digits, doesn't it? And what is the value of it in decimal representation?
1101 = 1*8 + 1*4 + 0*2 + 1*1 = 13, and all the other variations will give values from 0 to 15, right? So it would be rather easy to represent these ones bunches of bits as one digit.
This is a place where hexadecimal values come into. These ones are composed of 15 digits(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) and as you can easily see can represent a unique set of 4 bits.
So that 1101 turns into D, 0101 -> 5 and so on...
Now all the operations get much easier, though these operations, including the substraction are carried out the same way.

Examples

1)                            2)

  011101101                10010011
+                              +
  110010010                00111011
  -------------               ------------
 1001111111               11001110

3)                            4)

  011001                     0111011
-                               -
       101                            011
  ---------                    ----------
  010000                     0111000

Exercises

And now what about trying to add and substract hexadecimal numbers the same way?
1) 9 + 2 = ?
2) A + B = ?
3) AF + 13 = ?
4) 11 - F = ?
5) AF - AA = ?
6) 72 - 36 = ?

P.S. There are always answers. You just need to look for them!