As a note that I am sure everybody realises (but I will still go into some detail), the shifting left occurs because in binary that is multiplying by 2 (you can also add it to itself) and this is because it is base 2. When you do that, you are just adding a zero to the end of the number. In the more familiar base of base 10 (or any base above 2), you have to worry about intermediate carry stuff, but it is pretty much the same. If I wanted to do 367*183, it would look like this
183 shift left is 83 with 1 as the digit to use
1*367=367, this is what we add to the accumulator
Shift the 83 left and we have 3 (well, 300), and 8 is the digit to check
Shift the accumulator left to multiply by 10
8*367=2936, this we add to the accumulator
Acc=6606
Acc shifted left to multiply by 10
shift left to get the 3
3*367=1101, add this to the accumulator
Acc=67161
Check it and it works

Pretty much, you are doing multiplication "the normal way", but backwards (last digit first). If you notice, the first result was multiplied by a total of 100 which fits (we did 1*367 for 100*367).