Is bit shifting O(1) or O(n)?

Pacerier picture Pacerier · Jan 31, 2012 · Viewed 13k times · Source

Are shift operations O(1) or O(n) ?

Does it make sense that computers generally require more operations to shift 31 places instead of shifting 1 place?

Or does it make sense the number of operations required for shifting is constant regardless of how many places we need to shift?

PS: wondering if hardware is an appropriate tag..

Answer

dan04 picture dan04 · Jan 31, 2012

A barrel shifter allows the shift to be performed in O(log n) passes — which may be done in the same clock cycle, making shifting an O(1) operation.