1. A method for efficiently shifting operands for processing, the method comprising: a) receiving an operand; b) determining a shift value to be applied to the operand at a first stage; c) shifting the operand by the shift value; d) outputting the shifted operand to a second stage; e) repeating b), c), and d) for successive stages until the operand is shifted for processing; and g) processing the operand.