A logic circuit that has data and control inputs and data outputs. The output equals the input, rotated by a number of bit positions specified by the control inputs. The circuit can shift its input by any amount from 0 to 2n−1 bits, where n is the number of input/output bits. It is usually necessary to specify whether the shifting operation is to the right or to the left.