Побитовый сдвиг - C (СИ)
Формулировка задачи:
Помогите решить
Дано короткое целое (2 байта) неотрицательное число. Выполнить циклический сдвиг его двоичного представления на
К
битов влево.Решение задачи: «Побитовый сдвиг»
textual
Листинг программы
int k = 1; unsigned short a, b = 1234; k %= 16; a = (b << k) | (b >> (16 - k));
Объяснение кода листинга программы
- В начале кода объявляются три переменные:
k,aиb. Значение переменнойkравно 1, а значение переменнойbравно 1234. Переменнаяaпока не имеет определенного значения. - Затем выполняется операция побитового сдвига. Переменная
kиспользуется как смещение, и результат сдвига сохраняется в переменнойa. - Далее выполняется операция побитового ИЛИ. В качестве первого аргумента используется результат предыдущей операции (смещенный вправо на 15 позиций), а вторым аргументом является исходное значение переменной
b, сдвинутое влево на 15 позиций. Результат этой операции также сохраняется в переменнойa. - В конце кода значение переменной
aвыводится на экран.