Which is more computationally efficient: multiplication or 0 padding?
I'm assuming that your numbers are in binary. In this case, 0 padding is shift left: x &lt;&lt; 3 is the same as x * 0x08, where 0x08 (hex) is 1000 (binary).

Shifting is much simpler to implement in hardware and is generally more efficient. You could check by writing a short C program.

Note that there is one significant difference between shift left and multiplication. The former does not signal if there is an overflow error, whereas the latter will.