КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Операции сдвига
Контроль логических операций
К логическим операциям относятся операции сдвига, логического сложения и умножения, выполняемые по соответствующим правилам. Несмотря на кажущуюся простоту этих правил, осуществление операций контроля сталкивается с рядом трудностей, объясняемых тем, что логические операции являются поразрядными операциями.
Пусть задано число А = апап-1...а1а0, имеющее контрольный код r а = аks...аk1. Обозначим код числа А, сдвинутый влево, через Cдвиг влево двоичного числа эквивалентен умножению на два. Так как при сдвиге числа происходит потеря некоторых его разрядов, можно предполагать, что контрольный код сдвинутого числа изменится на величину Δ:
где Величина Δ зависит от значений аn и аks,которые при сдвиге выходят за пределы разрядной сетки. Если при сдвиге n-разрядного числа старшая единица выйдет за пределы разрядной сетки, то это эквивалентно вычитанию Если при сдвиге контрольного кода выходит за пределы разрядной сетки разряд аks = 1, то это эквивалентно уменьшению контрольного кода на 2S. Такую потерю надо восстановить прибавлением к контрольному коду единицы. В общем случае предыдущее уравнение принимает вид
Веса разрядов кодовой комбинации, представленной в системе с основанием 2S, назначаются следующим образом:
В результате значения поправок Δ для контроля выполнения левого сдвига по модулю будут:
Значение поправки Δ можно заменить ее дополнением до модуля. Для выполнения сдвига влево с циклическим переносом из старшего разряда в младший разряд необходимо уменьшить контрольный код на величину
При сдвиге вправо происходит потеря младших разрядов числа и контрольного кода этого числа. Так как сдвиг вправо эквивалентен делению на 2, то
Эти потери надо компенсировать. Значит, контрольный код сдвинутого вправо числа можно найти по формуле
В зависимости от модуля поправка к контрольному коду в случае простого сдвига принимает следующие значения:
При модифицированном сдвиге вправо, который выполняется по правилу A = 1, an-1, an-2…a2a1;
Дата добавления: 2014-01-06; Просмотров: 303; Нарушение авторских прав?; Мы поможем в написании вашей работы! |