logo search
OAiP_shporka

21. Операции сдвига.

Поразрядные операторы сдвига >> и << сдвигают все биты переменной вправо или влево. Общая форма оператора сдвига вправо:

Переменная >> кол-во разрядов

Общая форма оператора сдвига влево:

Переменная << количество разрядов

Во время сдвига битов в один конец числа, другой конец заполняется нулями. Но если число типа signed int отрицательно, то при сдвиге вправо левый конец заполняется единицами, так что знак числа сохраняется. Необходимо отметить различие между сдвигом и циклическим сдвигом. При циклическом сдвиге биты, сдвигаемые за пределы операнда, появляются на другом конце операнда. А при сдвиге вышедшие за границу биты теряются.

Поразрядные операции сдвига очень полезны при декодировании выходов внешних устройств, например, таких, как цифро-аналоговые преобразователи, а также при считывании информации о статусе устройств. Сдвиг на один бит вправо делит число на 2, а на один бит влево – умножает на 2.