Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов (1988) (1092085), страница 3
Текст из файла (страница 3)
В.З. ФОРМЫ ПРЕДСТАВЛЕНИЯ ЧИСЕЛ 13 В цифровых устройствах нспользукпся две формы представления чисел: с фиксированной и плавающей точкой. Числа с ф н к с и р о в а н н о й точкой. В ячейке для хранения числа с фиксированной точкой один разряд используется в качестве знакового, в нем записывается в закодированной форме знак числа: Π— в случае положительного, ! — в случае отрицательного числа. Остальные разряды используются для хранения абсолютного значения числа. Точка, отделяющая целую часть числа от ее дробной части, занимает фиксированное положение: часто перед старшим разрядом либо после младшего разряда.
В первом случае для всех представляемых в этой форме чисел абсолютное значение меньше еди- ницы. Например, число — 0,101101, следующим образом разместится в элементах запоминающей ячейки: о! 1~ 1~ о~ 1~ о~ о! о~ Разряды модуля числа и Ю с х Ха, х х х аз а Свободные младшие разряды заполняются нулями. Так как в этом случае предусматривается хранение лишь дробной части числа, то не только исходные данные, но и результаты всех проведенных над ними операций должны быть числами, абсолютное значение которых меньше единицы.
Выполнение этого условия обеспечивается выбором определенных масштабных коэффициентов, на которые умножаются исходные данные задачи. Неправильный выбор коэффициентов может вызвать так называемое переполнение разрядной сеписи — возникновение ошибки, если в результате выполнения операций в числе образуется целая часть, для хранения которой в разрядной сетке не предусмотрено места, н она теряется. Необходимость в масштабировании данных составляет один из недостатков представления чисел с фиксированной точкой; другой недостаток этой формы — низкая точность представления чисел, абсолютное значение которых мало (нули в старших разрядах приводят к уменьшению числа разрядов, занимаемых значащей частью числа, и к снижению точности представления числа).
Во втором случае, когда точка фиксируется после младшего разряда, числа с фиксированной точкой — целые. Например, число 11011, будет размещено в ячейке памяти следующим образом: О ~ О~ О~ О! О~ 1~ 1~ О~ Разриды модули числа х а ох х х ах' и ю а. Здесь свободные старшие разряды заполняются нулями. Если и — число разрядов ячейки, то диапазон модулей представимых в ней целых чисел: 0 ... (2а-' — 1). Числа с плавающей точкой. Форма с плавающей точкой предусматривает представление числа в показательной форме. Например, десятичное число 685, 73„представляется в форме 0,68573 х х10*; здесь 0,68573 — мантисса, 1Π— основание десятичной системы счисления, 3 — порядок. Двоичное число 0,00010!101, представ- о ~ 1~ о(1~1! о) 1~ о~ о~ ! ) о~1~ Разряды мантиссы х я х ( Охх х а.х ххи х 3 х й О.~ З х о~чх хо.х мха.
хм с ~О а х х" х з х ххх О.» х х Хх. хО О о.ях Соответствующим выбором значения порядка можно добиться, чтобы старший разряд мантиссы не был равен нулю. При этом образуется так называемая нормальная форма. Определим диапазон двоичных чисел, которые могут быть представлены в ячейке памяти в нормальной форме. Обозначим й — число разрядов, отведенных в ячейке для хранения абсолютного значения порядка. Положительное число в ячейке будет иметь наименьшее значение, если минимальное значение будет иметь мантисса (все ее разряды, кроме старшего, будут содержать нуль: 0,100 ... 0,), а порядок будет иметь отрицательный знак и максимальное абсолютное значение (т. е.
все разряды модуля порядка будут содержать единицу; 1! ...1, = = 2" — 1). Таким образом, значение минимального положительного числа в нормальной форме Ч, = — '2-( "- 1=2- '. 2 Максимальное число в ячейке образуется при максимальном значении мантиссы (когда мантисса содержит во всех разрядах единицу: 0,11 ...1, ж 1) и положительном порядке, имеющем максимальное значение (т.
е. если все разряды порядка содержат единицу: !1 ...1,= =2а — 1). Следовательно, максимальное значение числа )рваав = 2 Итак, диапазон представимых чисел в нормальной форме равен й! ...й! =2 — '" ...2з~ — ' ва1а ." свая Как видим, этот диапазон определяется лишь й. Пусть, например, й = Б. Тогда й( 1у 2-я' 2з' з 2-вв 2ва 10 — вв в,з 10вз. а,з ж ипа " ваах ж 10-" ...
10". 15 ' ляется в виде 0,10!!01.!О-"; здесь О,!01!01, — мантисса, 10, — основание двоичной системы счисления, †!1, — порядок. В ячейке памяти такие числа хранятся в виде двух групп цифр: первая группа, называемая мантиссой, определяет само число, вторая группа, называемая порядком, — место точки в числе. Приведенное выше двоичное число может иметь следующее размещение в элементах запоминающей ячейки: Если диапазон представимых чисел, как показано выше, определяется числом разрядов, отведенных в ячейке памяти для хранения порядка, то точность представления чисел определяется числом разрядов, выделенных для хранения мантиссы.
Обозначим т — количество разрядов ячейки памяти, предназначенных для хранения мантиссы. Если количество разрядов в мантиссе числа больше и, то в ячейку памяти заносятся т старших разрядов мантиссы числа; младшие ее разряды отбрасываются и может производиться округление сохраняемой части мантиссы. Округление мантиссы чисел в двоичной системе счисления выполняется по следующему правилу: если старший нз отбрасываемых разрядов мантиссы содержит единицу, то к младшему разряду сохраняемой части мантиссы прибавляется единица.
При таком округлении абсолютная погрешность а представления мантиссы не превышает половины весового коэффициента младшего из сохраняемых разрядов мантиссы: е(!/2 2 — '". Так как в нормальной форме значение мантиссы не менее !/2, то относительная погрешность представления числа составит з! ( е/0,5 ( 2 — ". Пусть, например, и — — 24. Тогда и ~ 2 — зз ж 10 — ы ю,з 10 — гл Следовательно, при данном значении т двоичные числа в ячейке памяти будут представлены с точностью в 7 десятичных знаков.
Нормальная форма позволяет получать представление чисел в широком диапазоне с одинаковой относительной погрешностью т1. Использование формы с плавающей точкой позволяет часто обходиться без масштабирования данных. В тех же случаях, когда оно требуется, выбор масштабных коэффициентов не представляет трудностей.
Однако выполнение операций над числами с плавающей точкой сложнее, чем над числами с фиксированной точкой. В.4. ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ Основной операцией, которая используется в цифровых устройствах при различных вычислениях, является операция алгебраического сложения чисел (сложения, в котором могут участвовать как положи- 16 тельные, так и отрицательные числа). Вычитание легко сводится к слозкению путем изменения на обратный знака вычитаемого. Операции умиожения и деления такжевыполняются с помощью операциисложения и некоторых логических действий. Поэтому именно с операции сложения начнем рассмотрение способов выполнения арифметических операций. При записи кода числа знак числа будем представлять полужирными цифрами О (для положительных чисел) и ! (для отрицательных чисел). Положение точки в числе показывать не будем.
Сложение положительных двоичных чис е л. Выполнение этой операции покажем на примере: Переносы 1~-~ 1~-) Первое слагаемое М, О О 1 О О 1 Второе слагаемое Л', + О О 1 1 О 1 Сумма У =. М, + М, О 1 О 1 1 О Цифры разрядов суммы М =- М, + М, формируются последовательно, начиная с младшего разряда. Цифра младшего разряда суммы образуется суммированием цифр младших разрядов слагаемых. При этом, кроме цифры разряда суммы, формируется цифра переноса в следующий, более старший разряд. Таким образом, в разрядах, начиная со второго, суммируются три цифры: цифры соответствующего разряда слагаемых и перенос, поступающий в данный разряд из предыдущего.
Перенос равен 1 во всех случаях, когда результат суммирования цифр в разряде равен или больше р = 2 (р — основание системы счисления). При этом в разряд суммы записывается цифра, на р единиц (т. е. на две единицы) меньшая результата суммирования. Алгебраическое сложение с использованием дополнительного кода. Для пояснения сущности излагаемого ниже метода рассмотрим следующий пример. Пусть требуется сложить два десятичных числа У, -:= О 83! и Ж, == 1 376. Так как второе слагаемое — отрицательное число, пользование приемом, излагаемым в школьной программе, потребовало бы последовательности действий с заемами из старших разрядов. Предусматривать в цифровом устройстве дополнительно такую последовательность действий не обязательно.
Искомый результат может быть получен и с использованием последовательности действий с передачей переносов в старшие разряды, которая используется при сложении положительных чисел. Для этого достаточно отрицательное число 1 376 предварительно преобразовать в так называемый дополнительный код следующим образом: во всех разрядах, кроме знакового, запишем дополнение до 9 к цифрам этих разрядов и затем прибавим единицу в младший разряд. Число Ж, = ! 376 в дополнительном коде есть М„„, = 1 624. 17 Далее произведем сложение по правилам сложения с передачей переносов в старшие разряды (т.