Для операций побитового сдвига (или вращения, циркуляции) у нас обычно есть оператор, я имею в виду два из них, например
x << n
x >> n
для сдвига влево или вправо на x
на n
бит.
Мы хотим определить одну функцию
bitshift(x, n)
Перед этим мы должны определить, какой сдвиг использовать для положительного и отрицательного n
- каков знак каждого направления сдвига (или поворота).
Есть ли определение или соглашение для этого?
(Обратите внимание, что этот вопрос не имеет ничего общего с подписанными/неподписанными типами)
ОБНОВЛЕНИЯ
Обратите внимание, что я не прошу подробностей реализации этой функции, даже если она может быть в чем-то связана.
Существуют аналогичные функции в языках, подобных схемам/лиспам, например ash, которые делают сдвиг влево для положительного n