# Сдвигатель

Библиотека: | Арифметика
Введён в: | 2.3.0
Внешний вид: |

## Поведение

Этот компонент включает два входа: данные и дистанция, и имеет один выход, значение на котором - результат сдвига данные на дистанция позиций. И данные, и выход имеют одинаковое количество битов. Компонент поддерживает следующие типы сдвига:

- Логический левый: все биты в данные сдвигаются вверх на дистанция позиций, а нижние дистанция позиций заполняются нулями. Например, 11001011 логически сдвинутое влево на два - это 00101100. (Две верхние единицы потеряны.)
- Логический правый: все биты в данные сдвигаются вниз на дистанция позиций, а верхние дистанция позиций заполняются нулями. Например, 11001011 логически сдвинутое вправо на два - это 00110010. (Две нижние единицы потеряны.)
- Арифметический правый: все биты в данные сдвигаются вниз на дистанция позиций, а верхние дистанция позиций заполняются повторениями самого верхнего бита в данные. Например, 11001011 арифметически сдвинутое вправо на два - это 11110010.
- Циклический левый: все биты в данные сдвигаются вверх на дистанция позиций, а верхние дистанция позиций прокручиваются вниз. Например, 11001011 циклически сдвинутое влево на два - это 00101111.
- Циклический правый: все биты в данные сдвигаются вниз на дистанция позиций, а нижние дистанция позиций прокручиваются вверх. Например, 11001011 циклически сдвинутое вправо на два - это 11110010.

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

## Контакты

Западный край, северный конец (вход, разрядность соответствует атрибуту Биты данных)
  Значение, которое будет сдвинуто.
Западный край, южный конец (вход, разрядность вычисляется как указано ниже)
  Количество битов значения, на которое нужно сдвигать значение на входе данные. Этот вход должен иметь столько битов, каково минимальное число для указания любой дистанции сдвига от 0 до значения, на единицу меньшего, чем значение атрибута Биты данных; то есть число битов, равное логарифму по основанию 2 от значения атрибута Биты данных, округлённому вверх до ближайшего целого. Например, если значение Биты данных равно 8, то этот вход должен иметь 3 бита; но если оно равно 9, то потребуются 4 бита.
Восточный край (выход, разрядность соответствует атрибуту Биты данных)
  Результат сдвига входного значения на количество позиций, заданное другим входом.

## Атрибуты

Когда компонент выбран, или уже добавлен, комбинации от Alt-0 до Alt-9 меняют его атрибут Биты данных.

Биты данных
  Разрядность входа данные и выхода компонента.
Тип сдвига
  Один из пяти возможных типов сдвига, как описано выше (Логический левый, Логический правый, Арифметический правый, Циклический левый, Циклический правый).

## Поведение Инструмента Нажатие

Нет.

## Поведение Инструмента Текст

Нет.

Назад к Справке по библиотеке