Циклический сдвиг - Теряются все биты - C (СИ)
Формулировка задачи:
Подскажите пожалуйста как на си зделать циклический здвиг, через оператор << (>>) теряются все биты.
Решение задачи: «Циклический сдвиг - Теряются все биты»
textual
Листинг программы
i = (i >> 1) | ((i & 1) << (sizeof( i ) - 1));
Объяснение кода листинга программы
i- это переменная, которая циклически сдвигается вправо на 1 бит.i >> 1- это операция сдвига переменнойiвправо на 1 бит.((i & 1) << (sizeof( i ) - 1))- это операция сдвига переменнойiвлево на 1 бит, при этомiусекается до размера, указанного вsizeof( i ).|- это операция объединения (логическое ИЛИ) результатов двух предыдущих операций.