Если вы знаете размер шрифта, вы можете сделать что-то вроде:
uint i = 17;
uint j = i << 1 | i >> 31;
... который будет выполнять круговое смещение 32-битного значения.
В качестве обобщения для кругового сдвига влево n битов для переменной b бит:
/*some unsigned numeric type*/ input = 17;
var result = input << n | input >> (b - n);
<ч />
@ Комментарий, похоже, что C # по-разному обрабатывает старший бит значений со знаком. Я нашел некоторую информацию об этом здесь . Я также изменил пример, чтобы использовать uint.