Операции сдвига заключается в одновременном смещении цифр числа на фиксированное число разрядов влево или вправо.
Логический сдвиг – смещение всей числовой последовательности (слова) включая разряд знака, при котором в освободившиеся при сдвиге k разрядов записываются нули.

k – константа сдвига.
Циклический сдвиг - смещение всей числовой последовательности (слова), при котором, цифры выходящие за пределы разрядной сетки, снова вводятся в освобождающиеся позиции слова.

Арифметический сдвиг – сдвиг всей числовой последовательности (слова) без изменения позиции знака числа. Арифметический сдвиг может быть простой и модифицированный.
Простой сдвиг влево (ведет себя как логический сдвиг):
1. для прямого кода – сдвигается только цифровая часть числа, освобождающиеся младшие разряды заполняются нулями. Допустимая константа сдвига kд определяется числом подряд стоящих нулей после точки.
2. для дополнительного и обратного сдвигается вся числовая последовательность освобождающаяся часть для дополнительного кода заполняется нулями, для обратного заполняется выдвигающимися единицами(циклический сдвиг влево)
Допустимая величина сдвига определяется числом подряд стоящих единиц после запятой (точки).
|
|
|
Простой сдвиг вправо:
1. для прямого кода – сдвигается только цифровая часть числа;
2. для дополнительного и обратного сдвигается вся числовая последовательность,
цифра знакового разряда перемещается в старший цифровой разряд и восстанавливается в знаковом разряде. Разряды выходящие за правую границу сетки теряются.
Знаковые разряды – если «+», то 0. Если «–» то 1.
Преобразование числа из прямого кода в дополнительный осуществляется по следующему алгоритму.
· Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;
· Если число, записанное в прямом коде, отрицательное, то все разряды числа инвертируются, а к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.
| Десятичное представление | Код двоичного представления (8 бит) | ||
| прямой | обратный | дополнительный | |
| -0 | --- | ||
| -1 | |||
| -2 | |||
| -3 | |||
| -4 | |||
| -5 | |||
| -6 | |||
| -7 | |||
| -8 | |||
| -9 | |||
| -10 | |||
| -11 | |||
| -127 | |||
| -128 | --- | --- |