The other interesting property to the first algorithm is that you don't need to calculate a conditional for each bit in one of those factors. You can just AND each bit in one factor by all the bits in the other factor (ANDing is equivalent to multiplying in binary), before the shifts and the adds. Because ANDs, shifts, and adders are extremely simple to implement in hardware, most (all?) binary multiplication circuits are based off of the peasant multiplication algorithm, with modifications that trade off expense of manufacturing (more gates) for quicker computation (less gate delay due to exploiting parallelism in the algorithm).
Comments
The other interesting property to the first algorithm is that you don't need to calculate a conditional for each bit in one of those factors. You can just AND each bit in one factor by all the bits in the other factor (ANDing is equivalent to multiplying in binary), before the shifts and the adds. Because ANDs, shifts, and adders are extremely simple to implement in hardware, most (all?) binary multiplication circuits are based off of the peasant multiplication algorithm, with modifications that trade off expense of manufacturing (more gates) for quicker computation (less gate delay due to exploiting parallelism in the algorithm).