Лучшие практики для операций циклического сдвига (поворота) в C++C++

Программы на C++. Форум разработчиков
Anonymous
Лучшие практики для операций циклического сдвига (поворота) в C++

Сообщение Anonymous »

Операторы сдвига влево и вправо (>) уже доступны в C++.
Однако мне не удалось выяснить, как выполнять операции кругового сдвига или поворота.

Как можно выполнять такие операции, как «Поворот влево» и «Поворот вправо»?

Здесь дважды поворачивается вправо

Код: Выделить всё

Initial --> 1000 0011 0100 0010
должно получиться:

Код: Выделить всё

Final   --> 1010 0000 1101 0000
Пример был бы полезен.

(примечание редактора: многие распространенные способы выражения поворотов в C страдают от неопределенное поведение, если счетчик вращения равен нулю или компилируется более чем в одну машинную инструкцию вращения. Ответ на этот вопрос должен документировать лучшие практики.)

Подробнее здесь: https://stackoverflow.com/questions/776 ... tions-in-c

Вернуться в «C++»