Лучшие практики для операций циклического сдвига (поворота) в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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