The answer seems to be simple: First, we XOR the two least significant bits (LSB) to get the most significant bit. The two LSB are obtained by right-shifting. So, calculating in this way, we get the sequence 110, 111, 011, 001, 100, 010, 101.


You don't explain how $2^N$ is calculated, so I'm assuming you repeatedly multiply by 2 (or equivalently, you repeatedly add the number to itself, or shift it left). Here's how this process looks on a 4-bit signed register. You start with $0001$, the answer for $N=0$. Doubling it, we reach $0010$, the answer for $N=1$. Doubling again, we reach $0100$, the ...


One way this can be performed in a single cycle is through register renaming. If the processor supports register renaming, no data needs to be moved: one simply renames which register is called R1 and which one is called R2. If the processor doesn't support register renaming, the other option is that the data can simply be swapped between the two registers....

Only top voted, non community-wiki answers of a minimum length are eligible