[7] Arithmetic shifts can be useful as efficient ways to perform multiplication or division of signed integers by powers of two.
Shifting right by n bits on a two's complement signed binary number has the effect of dividing it by 2n, but it always rounds down (towards negative infinity).
However, arithmetic right shifts are major traps for the unwary, specifically in treating rounding of negative integers.
Large number of 1960s and 1970s programming handbooks, manuals, and other specifications from companies and institutions such as DEC, IBM, Data General, and ANSI make such incorrect statements[10][page needed].
Logical right shifts are equivalent to division by a power of the radix (usually 2) only for positive or unsigned numbers.
The (1999) ISO standard for the programming language C defines the right shift operator in terms of divisions by powers of 2.
[11] Because of the above-stated non-equivalence, the standard explicitly excludes from that definition the right shifts of signed numbers that have negative values.