Вы здесь

Операции битового сдвига микроконтроллеров

 В прошлой статье мы рассмотрели какие операции можно выполнять с битами, сегодня мы будем рассказывать как работать с определенным битом. Дело в том что не все электронные системы поддерживают прямое обращение к конкретному биту из байта, для этого применяют так называемые операции битового сдвига. Операции битового сдвигают биты в указанном направлении на нужное число элементов. 

 Типы битового сдвига:

1. логический сдвиг - сдвиг при котором бит сдвигается на нужную велечину, а на месте его записывается 0. В основном мы будем использовать данный сдвиг.
2. Арифметический сдвиг - по сути очень похож на логический но, при сдвиге в право освободившееся позиции заполняются значениями с крайнего левого
3. циклический - когда биты с уходящей стороны заполняют освободившееся место с другой

Битовый сдвиг на языке программирования C

В языке С битовый сдвиг осуществляется при помощи символов:
  • "<<" - сдвиг в лево
  • ">>" - сдвиг в право
С помощью данных символов указывается на сколько значений сдвинуть бит. При этом стоит помнить при сдвиге вправо в С выполняется не логический, арифметический сдвиг. 
 
Запись битового сдвига будет выглядеть следующим образом:
Пример битового сдвига
 
Приведу так же табличку с примерами битового сдвига десятичного числа 1 (0b00000001):
Запись сдвигадесятичный результатБитовое представление
1<<120b00000010
1<<240b00000100
1<<380b00001000
1<<4160b00010000
1<<5320b00100000
1<<6640b01000000
1<<71280b10000000
1>>100b00000000
1>>400b00000000
 
Для лучшего понимания приведу так же пример со сдвигом десятичного числа 27, что в двоичном представлении 0b00011011:
Запись сдвигадесятичный результатБитовое представление
27<<1540b00110110
27<<41760b10110000
27>>1130b00001101
27>>330b00000011
Спасибо что читали, на этом пока все.
Всего голосов: 307