КАТЕГОРИИ: Архитектура-(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) |
Основы знаковой арифметики
Сложение и вычитание беззнаковых чисел Во всех позиционных системах счисления данные операции делаются аналогично операциям в десятичной системе счисления. При сложении чисел могут возникать переносы в старшие разряды, а при вычитании – заемы из старших разрядов.
Прямой код Прямой код (ПК) используется для представления знаковых чисел. При этом старший разряд числа является знаковым (0 – «+», 1 – «-»), а оставшиеся разряды – значащими (модулем числа). Например: +142 = 0.1110, –142 = 1.1110. ПК наиболее удобен для хранения чисел, поскольку не представляет сложностей для понимания чисел, их печати, сортировки и т.п. Однако выполнения арифметических операций над числами в ПК оказывается достаточно трудоемким. Рассмотрим выполнение операции сложения чисел в ПК. Алгоритм сложения имеет следующий вид.
В начале проверяется равенство знаков слагаемых. При их равенстве выполняется сложение модулей чисел, и результату присваивается знак одного из операндов. Если при сложении модулей возникает перенос из старшего разряда, то имеет место переполнение, и результат является ошибочным. Если знаки слагаемых не равны, для определения результата необходимо из большего модуля числа вычесть меньший модуль числа, и результату присвоить знак большего по модулю числа. Отметим, что при сложении чисел с разными знаками переполнение невозможно. Таким образом, при сложении чисел в ПК признаком переполнения является наличие переноса из старшего разряда при сложении модулей чисел.
Дополнительный код Формируется из числа в прямом коде и позволяет выполнять сложение чисел по более простой схеме по сравнению с прямым кодом. Перевод чисел из ПК в ДК выполняется по следующим правилам: Положительное число в ДК такое же, как и в ПК. Если число отрицательное, то для перевода его в ДК нужно знак сохранить, а модуль числа инвертировать и прибавить единицу. Например. 0.1010ПК = 0.1010ДК = 1010. 1.1011ПК = 1.0101ДК = –1110. Отметим, что в ПК число 1.0000 означает то же, что и 0.0000. В дополнительном коде число 1.0000 означает число –1610 и является корректным с точки зрения ДК. Рассмотрим выполнение операции сложения чисел в ДК.
Считая, что оба операнда уже заданы в ДК, выполняется их суммирование, после чего сравниваются переносы из знакового (старшего) и в знаковый разряд. Переполнение результата имеет место при неравенстве переносов. В случае переполнения результат считается неверным. Преимущества алгоритма сложения чисел в ДК по сравнению с ДК заключаются в следующем. 1. Знаки операндов участвуют в операции сложения наравне со значащими разрядами. Это приводит к тому, что знак результата формируется автоматически, без дополнительных проверок. 2. Алгоритм сложения в ПК использует операцию двоичного вычитания, которая крайне сложно реализуется с помощью электронной аппаратуры в связи с использованием заемов. В тоже время операция двоичного сложения реализуется сравнительно просто. 3. Доступный диапазон чисел в ДК на одно число больше, чем в ПК (при одинаковой разрядности операндов).
Вычитание чисел со знаком Вычитание сводится к сложению, при этом вычитаемое предварительно умножается на минус единицу: A – B = A + (-B). Для того, что число в ПК умножить на (-1), достаточно инвертировать знак числа. Для того, чтобы число в ДК умножить на (-1), нужно инвертировать все разряды числа (включая знаковый), и к полученному значению прибавить единицу. После этого выполняется сложение чисел согласно ранее рассмотренным алгоритмам.
Лекция 9
Дата добавления: 2014-01-06; Просмотров: 879; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |