Здравствуйте! Пишу программу на C#. Имеется число, которое принимает значения от 0 до 255 (тип - Byte; 8 бит), в котором нужно выполнить циклический сдвиг битов вправо. Соответственно, после сдвига должно получиться число от 0 до 255.
Я нашел этот код:
int shr(int a, int s) {
return (a>>s) | (a<<32-s);
}
Но он работает как-то странно - получаются числа, намного превышающие 255. Подскажите, как это реализовать? Заранее спасибо.