Устройство сдвига
| Библиотека: | Арифметика |
| Введён в: | 2.3.0 |
| Внешний вид: |
|
Поведение
Этот компонент принимает два входа, данные и дистанция (величина сдвига), и имеет один выход, значение на котором является результатом сдвига значения на входе данные на указанную дистанцию. Вход данные и выход имеют одинаковую разрядность. Компонент поддерживает следующие типы сдвига:
- Логический сдвиг влево: все биты во входе данные сдвигаются влево (в сторону старших разрядов) на дистанцию позиций, а освободившиеся младшие разряды заполняются нулями. Например, 11001011 при логическом сдвиге влево на две позиции даёт результат 00101100 (два старших бита теряются).
- Логический сдвиг вправо: все биты во входе данные сдвигаются вправо (в сторону младших разрядов) на дистанцию позиций, а освободившиеся старшие разряды заполняются нулями. Например, 11001011 при логическом сдвиге вправо на две позиции даёт результат 00110010 (два младших бита теряются).
- Арифметический сдвиг вправо: все биты во входе данные сдвигаются вправо (в сторону младших разрядов) на дистанцию позиций, а освободившиеся старшие разряды заполняются копиями знакового (самого старшего) бита входа данные. Например, 11001011 при арифметическом сдвиге вправо на две позиции даёт результат 11110010.
- Циклический сдвиг влево: все биты во входе данные сдвигаются влево (в сторону старших разрядов) на дистанцию позиций, а выходящие старшие биты переносятся (зацикливаются) в младшие разряды. Например, 11001011 при циклическом сдвиге влево на две позиции даёт результат 00101111.
- Циклический сдвиг вправо: все биты во входе данные сдвигаются вправо (в сторону младших разрядов) на дистанцию позиций, а выходящие младшие биты переносятся (зацикливаются) в старшие разряды. Например, 11001011 при циклическом сдвиге вправо на две позиции даёт результат 11110010.
Обратите внимание: если на входе дистанция присутствует хотя бы один бит в высокоимпедансном состоянии (Z) или ошибочный бит, то на выходе все биты примут ошибочное значение, так как невозможно определить величину сдвига.
Контакты
- Левая сторона, верхний край (вход, разрядность соответствует атрибуту «Биты данных»)
- Значение, которое будет сдвинуто (данные).
- Левая сторона, нижний край (вход, разрядность вычисляется как описано ниже)
- Величина сдвига (дистанция). Этот вход должен иметь разрядность, достаточную для представления любого сдвига от 0 до значения, на единицу меньшего, чем разрядность данных. То есть разрядность входа величины сдвига равна двоичному логарифму от значения атрибута «Биты данных», округлённому в большую сторону до ближайшего целого (потолок). Например, если Биты данных равны 8, то этот вход должен иметь 3 бита; если же Биты данных равны 9, то потребуется 4 бита.
- Правая сторона (выход, разрядность соответствует атрибуту «Биты данных»)
- Результат сдвига входного значения на заданную дистанцию.
Атрибуты
Когда компонент выбран или добавляется на холст, сочетания клавиш от Alt-0 до Alt-9 изменяют значение его атрибута Биты данных.
- Биты данных
- Разрядность входа данные и выхода компонента.
- Тип сдвига
- Один из пяти возможных типов сдвига, описанных выше (Логический сдвиг влево, Логический сдвиг вправо, Арифметический сдвиг вправо, Циклический сдвиг влево, Циклический сдвиг вправо).
Поведение Инструмента «Нажатие»
Нет.
Назад к Справке по библиотеке