Сдвиговые операции

  • docx
  • 18.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002067.docx

 Сдвиговые операции

Выполняют направленное перемещение битов в пределах разрядной сетки. Сдвиг в сторону старших разрядов называют сдвигом влево, а в сторону младших разрядов - сдвигом вправо. В зависимости от способа заполнения освободившихся разрядов различают три вида сдвигов:

v  Арифметический;

v  Логический;

v  Циклический.

Арифметический сдвиг. Вытолкнутые биты теряются. При сдвиге вле- во освобождающиеся правые биты заполняются нулем. При сдвиге впра- во освобождающиеся левые биты заполняются значением старшего (знакового) бита. Схемы арифметического сдвига на примере пятираз- рядного кода показаны на Рис.2.

 

 

 

0	0	1	0	1

1	1	0	0	0

0	1	1	0	0

0

 

0	1	0	1	0

                       1	1	1	1	0

                           0	0	1	1	0


Арифметический сдвиг влево на один бит


Арифметический сдвиг вправо на два бита

Рис. 2.


Арифметический сдвиг вправо на один бит


Логический сдвиг. Независимо от направления сдвига освобождаю- щиеся биты заполняются нулями. Схемы логического сдвига на примере пятиразрядного кода показаны на Рис.3.

 


0	0	1	0	1

0

 

0

1

0

1

0

Логический сдвиг влево на один бит


0

 

 

1	1	0	0	0

0	0	1	1	0

Логический сдвиг вправо на два бита


0

 

0

0

1

1

0

0	1	1	0	0

Логический сдвиг вправо на один бит


 

Рис. 3.

Если сдвигаемый код представляет собой код целого числа без знака, то логический сдвиг влево на n разрядов равносилен умножению числа на 2n, а логический сдвиг вправо - делению числа на 2n.


Циклический сдвиг. При логическом и арифметическом сдвиге вы- толкнутые за разрядную сетку биты безвозвратно теряются. При цикли- ческом сдвиге вытолкнутые биты записываются на место освободивших-

0	1	1	0	0

0	0	1	0	1

0	0	1	1	0

0	1	0	1	0

ся битов. Схемы цикличе- ского сдвига на примере пятиразрядного кода пока- заны на Рис.4.

Циклический сдвиг влево


Циклический сдвиг вправо на один разряд


 

Рис. 4.


Циклический сдвиг влево на один разряд


или вправо на n битов, где n равно длине разрядной сетки, приведет к получе- нию исходного двоичного


кода. Для рассмотренных примеров исходный код будет получен при сдвиге на пять бит

Типичной областью применения сдвигов является программная реа- лизация умножения и деления.