Rotate Binary Bits
Rotate binary bits left or right (circular shift) with configurable shift count and step-by-step bitwise movement table.
What Is Circular Bit Rotation?
Circular bit rotation (also known as a cyclic shift or bitwise rotation) is a operation that shifts all bits of a binary sequence. Unlike standard logical or arithmetic shifts where bits falling off the end are discarded and filled with zeros, circular rotation takes the bits that fall off one end and inserts them back at the opposite end. No bits are lost during a circular rotation; they are simply cycled through a loop.
Left vs Right Rotation
Depending on the chosen direction, the bits move accordingly:
- Rotate Left (ROL): The most significant bit (MSB) on the left falls off and becomes the least significant bit (LSB) on the right.
- Rotate Right (ROR): The least significant bit (LSB) on the right falls off and becomes the most significant bit (MSB) on the left.
Examples of Bitwise Rotation
Consider an 8-bit binary number: 11001001
- Rotate Left by 1: The left-most
1moves to the end, resulting in10010011. - Rotate Right by 2: The two right-most bits
01move to the front, resulting in01110010.
Frequently Asked Questions
What is the difference between circular shifting and logical shifting?
In a logical shift, bits shifted out are lost forever, and the empty spaces are filled with zeros. In a circular shift (rotation), no bits are lost; they are fed back into the opposite end of the sequence.
Does circular rotation preserve the Hamming weight of the binary number?
Yes. Because circular rotation only changes the positions of the existing bits and does not introduce new bits or discard any, the total number of 1 and 0 bits (Hamming weight) remains completely constant.
What happens if the shift count is larger than the number of bits?
If the shift count is greater than or equal to the binary length, the operation cycles. For example, rotating an 8-bit number by 8 returns the original number. The tool automatically performs a modulo operation (count % length) to execute the correct effective shift.
Are standard binary formats and coding prefixes supported?
Yes. Standard binary digits (only containing 0 and 1) are supported. If your input includes programming prefixes like 0b or 0B, they are safely stripped before performing the rotation and can be re-appended optionally to the output.
Related tools
Your recent visits