Давайте назовем это «<<<» </p>
int32variable <<< numberOfBits
равно
(int32variable << numberOfBits) | (int32variable >> (32 - numberOfBits))
(Предполагая, что << и >> отбрасывает переполненные биты)
Есть такой оператор?
Это было бы вызванным поворотом бита, и в C # такого оператора нет.
Вот интересный пост: Есть ли способ выполнить циклический битовый сдвиг в C #?
Обратите внимание, что ваш int32integer должен иметь тип uint (unsigned int).
uint
Я полагаю, что битовое вращение является инструкцией в наборе инструкций Intel, но, насколько мне известно, в CLR нет команд битового вращения.
Это называется побитовым вращением. У других языков есть, но у C # нет. См. этот вопрос , чтобы получить более подробную информацию, но суть в том, что ваш нынешний подход настолько хорош, насколько вы можете.
Я не думаю, что есть для C #. Смотрите на этой странице список операторов C #: http://msdn.microsoft.com/en-us/library/6a71f45d(vs.71).aspx.
Я думаю, что то, что вы показали в своем вопросе, возможно, самый быстрый способ сделать это. Я думаю, что в Java может быть оператор сдвига, подобный тому, который вам нужен, но я не являюсь программистом Java, я не могу этого подтвердить.
В C # нет примитивного оператора, который бы делал то, что вы ищете.
Игнорирование последствий для производительности при вызове метода (если вы выполняете операции битового сдвига, вас это может волновать), это было бы хорошим кандидатом для метода расширения в Int32.