Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Операции сдвига



Пусть задано число А = апап-1...а1а0, имеющее контрольный код r а = аks...аk1.

Обозначим код числа А, сдвинутый влево, через (без циклического переноса) и (с циклическим переносом) (при сдвиге вправо стрелка в обозначении будет повернута направо). Соответствующим образом обозначим и контрольный код: ; ; ; .

Cдвиг влево двоичного числа эквивалентен умножению на два. Так как при сдвиге числа происходит потеря некоторых его разрядов, можно предполагать, что контрольный код сдвинутого числа изменится на величину Δ:

,

где — сдвинутый влево контрольный код.

Величина Δ зависит от значений аn и аks,которые при сдвиге выходят за пределы разрядной сетки.

Если при сдвиге n-разрядного числа старшая единица выйдет за пределы разрядной сетки, то это эквивалентно вычитанию единиц из контрольного кода сдвинутого числа [ — вес (n+ 1)-го разряда].

Если при сдвиге контрольного кода выходит за пределы разрядной сетки разряд аks = 1, то это эквивалентно уменьшению контрольного кода на 2S. Такую потерю надо восстановить прибавлением к контрольному коду единицы.

В общем случае предыдущее уравнение принимает вид

.

Веса разрядов кодовой комбинации, представленной в системе с основанием 2S, назначаются следующим образом:

s=3 an an-1 an-2 an-3…a3 a2 a2
Вес σ 22 21 20 22…22 21 20

В результате значения поправок Δ для контроля выполнения левого сдвига по модулю будут:

Значение an ….        
Значение aks ….        
Поправка Δ….   -1 +1  

Значение поправки Δ можно заменить ее дополнением до модуля.

Для выполнения сдвига влево с циклическим переносом из старшего разряда в младший разряд необходимо уменьшить контрольный код на величину ; так как =1, этот член равен 0. Следовательно, предыдущая формула примет вид

.

При сдвиге вправо происходит потеря младших разрядов числа и контрольного кода этого числа. Так как сдвиг вправо эквивалентен делению на 2, то

; .

Эти потери надо компенсировать. Значит, контрольный код сдвинутого вправо числа можно найти по формуле

.

В зависимости от модуля поправка к контрольному коду в случае простого сдвига принимает следующие значения:

Значение a1 ….        
Значение ak1 ….        
Поправка Δ для:        
p = 3….        
p = 7.…        

При модифицированном сдвиге вправо, который выполняется по правилу A = 1, an-1, an-2…a2a1; = 1, an-1…a3a2, происходит также потеря младших разрядов кодовой комбинации числа и контрольного кода. Для этого случая предыдущая формула сохраняет свой вид, но поправки должны быть следующими:





Дата публикования: 2014-11-18; Прочитано: 474 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...