Home > Articles > Programming

This chapter is from the book

This chapter is from the book

2–7 Shift Right Signed from Unsigned

If your machine does not have the shift right signed instruction, it can be computed using the formulas shown below. The first formula is from [GM], and the second is based on the same idea. These formulas hold for 0 ≤ n ≤ 31 and, if the machine has mod-64 shifts, the last holds for 0 ≤ n ≤ 63. The last formula holds for any n if by “holds” we mean “treats the shift amount to the same modulus as does the logical shift.”

When n is a variable, each formula requires five or six instructions on a basic RISC.

In the first two formulas, an alternative for the expression 020fig01.jpg is 1<<31n.

If n is a constant, the first two formulas require only three instructions on many machines. If n = 31, the function can be done in two instructions with −020fig02.jpg.

  • + Share This
  • 🔖 Save To Your Account