C не имеет кругового сдвига, поэтому я предполагаю, что упражнение заключается в его реализации. Способ сделать это для левого кругового сдвига:
- get the current leftmost bit and save it
- shift the number leftwards by one
- or the saved bit in at the rightmost bit position
Для правого кругового сдвига:
- get the current rightmost bit and save it
- shift the number rightwards by one
- or the saved bit in at the leftmost bit position