1) Логический сдвиг кода. Все разряды кода А участвуют в операции одинаково. Освобождающиеся разряды обычно заполняются нулями. Разряды, выдвигаемые за разрядную сетку, теряются. В отличие от микрооперации сдвига в операции сдвига задается константа сдвига.
Пример. Логический сдвиг кода влево на два разряда:
L3 (011110) = 110000
Циклический сдвиг кода (разновидность логического). Освобождающиеся разряды доопределяются значениями разрядов, выдвигаемых за разрядную сетку:
L3 цикл (011110) = 110011
2) Арифметический сдвиг двоичного числа. Старший (знаковый) разряд числа А в сдвиге не участвует (его значение не изменяется). Информационные разряды, выдвигаемые за разрядную сетку, как правило, теряются. При сдвиге вправо освобождающиеся информационные разряды слова А доопределяются значением знакового разряда. При сдвиге влево освобождающиеся разряды доопределяются нулями.
Пример:
R3 ар (1 001100) = 1 111001;
L3 ар (1 001100) = 1 100 000
Арифметический сдвиг на один разряд используется в микропрограммах умножения двоичных чисел с фиксированной точкой в дополнительных кодах (сдвиг вправо) и деления двоичных чисел с фиксированной точкой (сдвиг влево).
0 коммент.:
Отправить комментарий