Аи ЛО ВТ (арифметика).ppt
- Количество слайдов: 24
Литература 1. Савельев А. Я. Прикладная теория цифровых автоматов: Учеб. для вузов по спец. ЭВМ. –М. : Высш. шк. , 1987. 2. Лысиков Б. Г. Арифметические и логические основы цифровых автоматов. Мн. : Вышейшая школа, 1980. 3. Лысиков Б. Г. Цифровая вычислительная техника. Мн. : , 2003 г. 4. Луцик Ю. А. , Лукьянова И. В. – Учебное пособие по курсу "Арифметические и логические основы вычислительной техники". -Мн. : ротапринт МРТИ , 2004 г.
Система счисления - совокупность цифр, приемов и правил для записи чисел цифровыми знаками. Любая система счисления должна обеспечивать: – возможность представления любого числа в рассматриваемом диапазоне величин; – единственность этого представления; – простоту оперирования числами. A=an·rn+ an-1·rn-1+. . . +a 1·r 1+a 0·r 0+ a-1·r-1+. . . +a-(m-1)·r-(m-1)+a-m·r-m r- основание с/с, аi - цифра числа в с/с с основанием r.
Методы перевода чисел Перевод целых чисел – Метод подбора степеней основания – Метод деления на основание новой системы счисления Перевод правильных дробей – Метод подбора величин, обратных степеням основания – Метод умножения на основание новой системы счисления
Коды чисел Существуют три способа кодирования чисел в ЭВМ: • прямой код числа • обратный код числа • дополнительный код числа Кодирование чисел позволяет заменить операцию арифметического вычитания операцией алгебраического сложения с помощью двоичного сумматора
Прямой код числа Пример: A= + 0, 01101 [A]пр= 0, 01101 Пример: A = + 10101 [A]пр=0. 10101 A= - 0, 11101 [A]пр= 1, 11101 A = - 11001 [A]пр= 1. 11001
Доподнительный код числа Пример: A = + 0, 01101 [A]доп= 0, 01101 A = + 10101 [A]доп= 0. 10101 A = - 0, 11100 [A]доп= 1, 00011 [A]доп= 1, 00100 A = - 11001 [A]доп= 1. 00111 A = - 11000 [A]доп= 1. 01000
Обратный код числа Пример: A = + 0, 01101 [A]обр= 0, 01101 A = + 10101 [A]обр= 0. 10101 A = - 0, 11100 [A]обр= 1, 00011 A = - 11001 [A]обр= 1. 00110 A = - 11000 [A]обр= 1. 00111
Форматы целых чисел • • Возможно четыре формата целых чисел: целое число; 2 байта короткое целое число; 4 байта длинное целое число; 8 байт упакованное десятичное число. 10 байт Упакованное десятичное число занимает 10 байтов и содержит 18 десятичных цифр, расположенных по две в каждом байте. Знак упакованного десятичного числа находится в старшем бите самого левого байта. Остальные биты старшего байта должны быть равны 0.
Разрядная сетка числа с ф. з. Целые числа представляются в сетке с фиксированной запятой (точкой): Общий формат разрядной сетки с фиксированной запятой имеет следующий вид: знак целая часть дробная часть k l Определим диапазон представления чисел для этого формата. Аmax=(2 k-1)+(1 -2 -n) 1) 2) 3) 4) k=0, k=n, l=n Amax=1 -2 -n l=0 Amax=2 n-1 l=n Amin=2 -n l=0 Amin=1
В дополнительном коде положительные числа содержат нуль в старшем бите числа: 0 XXX XXXX Например, число +5 в дополнительном коде выглядит следующим образом: 0000 0101 Для получения числа -5 вначале инвертируем значение каждого бита: 1111 1010 обратный код 1111 1011 дополнительный код -5 Теперь прибавим к полученному числу +1: -5 Возможные варианты представления целых чисел: • Нуль 0000 • Наименьшее положительное число 0000 0001 • Наибольшее отрицательное число 1111 • Наибольшее положительное число 0111 1111 • Наименьшее отрицательное число 1000 0000 0001 • Неопределенность 1000 0000 Упакованное десятичное число имеет следующий вид: 1 -й байт Девять байтов ± 0000000 хххх ……. хххх
Форматы вещественных чисел Общий вид вещественных чисел можно записать следующим образом: A= m. A r p. A, r - основание системы счисления m. A- мантисса, р. A - порядок числа А. Порядок (с учетом знака) показывает, на сколько разрядов и в какую сторону сдвинута запятая при замене формы записи числа с естественной на нормальную. Например: А 10 = 239, 745 = 0, 239745·103 = 239745·10 -3. Наиболее распространено и удобно для представления ограничение вида r -1≤ m. A 1.
В зависимости от типа данных числа с плавающей запятой в памяти ЭВМ хранятся в одном из следующих трех форматов: • одинарной точности; 4 байт • двойной точности; 8 байт • расширенной точности. 10 байт Для упрощения операций над порядками применяют представление чисел с плавающей запятой со смещенным порядком: p =p+N, где N – целое положительное число (смещение). Такие смещенные порядки называют характеристиками. Поле характеристики - это степень числа 2, на которую умножается мантисса, плюс смещение N, равное 127 для одинарной точности, 1023 - для двойной точности и 16383 - для расширенной точности.
Разрядная сетка числа с п. з.
В стандарте IEEE крайние значения порядка (характеристики) зарезервированы и не используются для представления обычных чисел. Особые случаи могут быть наглядно представлены следующим образом: ¦ 0¦ 0. . . 00 ¦ 0. . . 0 ¦ положительный нуль ¦ 1¦ 0. . . 00 ¦ 0. . . 0 ¦ отрицательный нуль ¦ 0¦ 0. . . 01 ¦ 0. . . 0 ¦ наименьшее положительное число ¦ 1¦ 0. . . 01 ¦ 0. . . 0 ¦ наибольшее отрицательное число ¦ 0¦ 11. . . 10 ¦ 1. . . 1 ¦ наибольшее положительное число ¦ 1¦ 11. . . 10 ¦ 1. . . 1 ¦ наименьшее отрицательное число ¦ 0¦ 11. . . 11 ¦ 0. . . 0 ¦ положительная бесконечность ¦ 1¦ 11. . . 11 ¦ 0. . . 0 ¦ отрицательная бесконечность ¦ 1¦ 11. . . 11 ¦ х. . . х ¦ не число ¦ 1¦ 11. . . 11 ¦ 10. . . 0 ¦ неопределенность
Машинные методы умножения Известны 4 алгоритма умножения чисел. Умножение начинается с сдвиг ∑i вправо алг А младших разрядов Мт сдвиг Пi влево алг Б Умножение начинается сдвиг ∑i влево алг В со старших разрядов Мт сдвиг Пi вправо алг Г где : ∑i – частичная сумма, П i – частичное произведение.
Рассмотрим более подробно алгоритм А: Мн = А = 0, а 1 а 2…аn Мт = B = 0, b 1 b 2…. bn = b 12 -1 + b 22 -2 + … + bn-12 -(n-1) + bn 2 -n Мн∙Мт = А∙В= (0, а 1 а 2…аn )( b 12 -1 + b 22 -2 + … + bn 2 -n) = 0 + (b 1∙ 0, а 1 а 2…аn)2 -1 + … + (bn-1∙ 0, а 1 а 2…аn)2 -(n-1) + (bn∙ 0, а 1 а 2…аn)2 -n = 0 + b 1∙A 2 -1 + … + bn-1∙A 2 -(n-1) + bn∙A 2 -n = 0 + bn∙A 2 -n + bn-1∙A 2 -(n-1) + … + b 1∙A 2 -1 = (…((0+bn∙A)2 -1+bn-1∙A)2 -1+…+b 1∙A)2 -1
Формулы для реализации алгоритмов (А-Г) умножения (алгоритм А) Мн∙Мт = А∙В= (…((0 + bn∙A)2 -1 + bn-1∙A)2 -1 +…+ b 1∙A)2 -1 (алгоритм Б) Мн∙Мт = А∙В = 0 + bn∙A + bn-1∙A∙ 21 +…+ b 1∙A∙ 2 n-1 (алгоритм В) Мн∙Мт = А∙В = (…(0 + b 1∙A) ∙ 21 + b 2∙A)∙ 21 +…+ bn∙A) (алгоритм Г) Мн∙Мт = А∙В = 0 + b 1∙A∙ 2 -1 + b 2∙A∙ 2 -2 +…+ bn∙A∙ 2 -n
Структурная схема устройства для умножения по алгоритму А сдвиг регистр Мт СМ ст . . . & & мл &. . . регистр Мн & Ти
Ускорение операции умножения Временные затраты на умножение чисел в прямых кодах можно оценить по формуле (3) где pi – вероятность появления единицы в разрядах множителя, tсл – время формирования очередной частичной суммы, tсдв – время выполнения сдвига числа на один разряд.
Пути ускорения умножения • Уменьшение времени на сдвиг; • при наличии нулевого разряда в множителе не выполнять формирование нулевого частичного произведения; • уменьшение числа разрядов множителя
Умножение в дополнительных кодах Умножение дробных чисел 1) Мн>0, Мт>0. 2) Мн>0, Мт<0. [Мн∙Мт]доп=2 - Мн∙Мт. Мн ∙ Мт = Мн ∙(1 - Мт)= Мн - Мн∙Мт. погрешность Δ умножения равна разности [Мн∙Мт]доп и Мт∙Мн Δ=2 -Мн∙Мт- Мн + Мн∙Мт=2 -Мн=[-Мн]доп=[ [Мн]доп
3) Mн<0, Mт>0. Аналогично предыдущему случаю [Мн∙Мт]доп=2 -Мн∙Мт, Мн ∙Мт= (1 - Мн)∙Мт= Мт - Мн∙Мт. погрешность умножения равна разности [Мн Мт]доп и Мт∙Мн. Δ=2 -Мн∙Мт- Мт + Мн∙Мт=2 -Мт=[-Мт]доп=[ [Мт]доп. Однако вводить поправку [-Mт]доп надо в конце умножения, а в результате сдвигов Мт постепенно исчезает. При этом знакосочетании возможно умножение без ввода поправки. Рассмотрим этот вариант на примере умножения по алгоритму Г (это справедливо и для других алгоритмов). Мн∙Мт = А ∙ В = [ A ∙ b 1∙ 2 -1 ]доп + [ A ∙ b 2∙ 2 -2 ]доп+. . . + [A∙ bn∙ 2 -n ]доп = [ A ∙ b 1∙ 2 -1 + A ∙ b 2∙ 2 -2 +. . . + A∙ bn∙ 2 -n ]доп = [Мн ∙Мт]доп. Поправка вводится автоматически на каждом этапе умножения.
4) Mн<0, Mт<0. Mн ∙ Mт = 2 - [Mн ∙ Mт]доп [Mн]доп ∙ (1 - Mт) = [Mн]доп - [Mн]доп ∙ Mт = = [Mн]доп - [Mн ∙ Mт]доп Δ=2 - [Mн ∙ Mт]доп - [Mн]доп + [Mн ∙ Mт]доп = = 2 - [Mн]доп = [[Mн]доп


