Побитовый сдвиг и ошибка "Невозможно применить оператор << к переменным тип ulong ulong" - C#
Формулировка задачи:
Пишу обычную программную реализацию ГОСТ Р34.11
Нужна операция побитового сдвига. Выглядит примерно так:
Пишет, что невозможно применить оператор << к переменным тип ulong ulong. Облазил MSDN. Написано, что к таким типам применяется нормально. Подскажите в чем дело
unsafe ulong ROL(ulong rol, ulong n)
{
ulong bitsize, hi;
bitsize = sizeof(ulong) * 8;
hi = (rol >> (bitsize - n)) & ((rol << n) - 1);
return (rol << n) | hi;
}Решение задачи: «Побитовый сдвиг и ошибка "Невозможно применить оператор << к переменным тип ulong ulong"»
textual
Листинг программы
ulong ROL(ulong rol, int n)
{
int bitsize;
ulong hi;
bitsize = sizeof(ulong) * 8;
hi = (rol >> (bitsize - n)) & ((rol << n) - 1);
return (rol << n) | hi;
}