Сдвиговые операции
Выполняют направленное перемещение битов в пределах разрядной сетки. Сдвиг в сторону старших разрядов называют сдвигом влево, а в сторону младших разрядов - сдвигом вправо. В зависимости от способа заполнения освободившихся разрядов различают три вида сдвигов:
v Арифметический;
v Логический;
v Циклический.
Арифметический сдвиг. Вытолкнутые биты теряются. При сдвиге вле- во освобождающиеся правые биты заполняются нулем. При сдвиге впра- во освобождающиеся левые биты заполняются значением старшего (знакового) бита. Схемы арифметического сдвига на примере пятираз- рядного кода показаны на Рис.2.
![]()
![]()
![]()
![]()
![]()
0
![]()
Арифметический сдвиг влево на один бит
Арифметический сдвиг вправо на два бита
Рис. 2.
Арифметический сдвиг вправо на один бит
Логический сдвиг. Независимо от направления сдвига освобождаю- щиеся биты заполняются нулями. Схемы логического сдвига на примере пятиразрядного кода показаны на Рис.3.
![]()
![]()
![]()
0
|
0 |
1 |
0 |
1 |
0 |
Логический сдвиг влево на один бит
0

![]()
Логический сдвиг вправо на два бита
0
|
0 |
0 |
1 |
1 |
0 |

Логический сдвиг вправо на один бит
Рис. 3.
Если сдвигаемый код представляет собой код целого числа без знака, то логический сдвиг влево на n разрядов равносилен умножению числа на 2n, а логический сдвиг вправо - делению числа на 2n.
Циклический сдвиг. При логическом и арифметическом сдвиге вы- толкнутые за разрядную сетку биты безвозвратно теряются. При цикли- ческом сдвиге вытолкнутые биты записываются на место освободивших-


![]()
![]()
![]()
ся битов. Схемы цикличе- ского сдвига на примере пятиразрядного кода пока- заны на Рис.4.
Циклический сдвиг влево
Циклический сдвиг вправо на один разряд
Рис. 4.
Циклический сдвиг влево на один разряд
или вправо на n битов, где n равно длине разрядной сетки, приведет к получе- нию исходного двоичного
кода. Для рассмотренных примеров исходный код будет получен при сдвиге на пять бит
Типичной областью применения сдвигов является программная реа- лизация умножения и деления.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.