Почти все микропроцессоры и цифровые сигнальные процессоры поддерживают четко определенные операции сдвига битов (или просто сдвига) для целых чисел. Например, рассмотрим 8-битное целое число без знака 00110101. Результаты 2-разрядного сдвига влево и 2-разрядного сдвига вправо показаны в следующей таблице.
| Операция смены | Двоичное значение | Десятичное значение |
|---|---|---|
Без смены (исходный номер) | 00110101 | 53 |
Сдвиг влево на 2 бита | 11010100 | 212 |
Смещение вправо на 2 бита | 00001101 | 13 |
Сдвиг можно выполнить с помощью арифметического блока Simulink ® Shift. Используйте этот блок для выполнения битового сдвига, двоичного точечного сдвига или обоих
Особый случай смещения битов вправо требует рассмотрения обработки самого левого бита, который может содержать информацию знака. Сдвиг вправо можно классифицировать как логический сдвиг вправо или арифметический сдвиг вправо. Для логического сдвига вправо 0 включается в старший бит для каждого битового сдвига. Для арифметического сдвига вправо самый старший бит повторно используется для каждого сдвига битов.
Арифметический блок сдвига выполняет арифметический сдвиг вправо и, следовательно, повторно использует старший бит для каждого битового сдвига вправо. Например, учитывая фиксированную точку номер 11001.011 (-6.625), немного изменения два места направо с запятой в двоичном числе неперемещенные урожаи номер 11110.010 (-1.75), как показано в модели ниже:

Чтобы выполнить логический сдвиг справа от подписанного числа с помощью арифметического блока Shift, используйте блок преобразования типа данных, чтобы привести число как беззнаковое число эквивалентной длины и масштаба, как показано в следующей модели. Модель показывает, что подписанный номер с фиксированной точкой 11001.001 (-6.625) становится 00110.010 (6.25).
