Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Представление данных.doc
Скачиваний:
45
Добавлен:
16.04.2015
Размер:
713.73 Кб
Скачать

Ext msp lsp

Десятичный эквивалент

_23+ 22+ 21+ 20+ 2-3+ 2-5= -0,84375

S _ знак

Рис. 3.15 Сохранение числа в формате “расширенное слово”

(иллюстрация примера 2)

3. 7.7. Представление данных

при целочисленной арифметике

В процессорах с ФТ и целочисленной арифметикой (см. разд.3.7.5) для представления исходных данных вещественного типа ( вещественных чисел) используют ихцелочисленные эквиваленты. Они определяются в результате маcштабирования, которое выполняется пользователем перед составлением программы. Масштабирование можно выполнить одним из двух способов:

первый способ – из всей совокупности исходных данных вещественного типа выбирается максимальное по модулю число и приравнивается к максимально допустимому по модулю целомучислу в формате “слово”

(машинной единице); значение остальных исходных данных вещественного типа находится из соответствующей пропорции; дробная часть отбрасывается или округляется пользователем;

второй способ – производится предварительное масштабирование

данных вещественного типа так, чтобы они не превосходили 1 по модулю; затем осуществляется их масштабирование к машинной единице по первому способу.

На практике чаще масштабируют по второму способу. Масштабировать следует к максимальному по модулю значению.

При целочисленной арифметике исходные данные целого типа не масштабируются, если они не превосходят машинной единицы. Иначе масштабирование предусматривается пользователем.

При целочисленной арифметике результаты обработки (конечные данные) получаются также в виде целочисленных эквивалентов, поэтому, если необходимо знать истинные значения результатов, требуется выполнить процедуру обратного масштабирования – деление целочисленных эквивалентов на значение машинной единицы.

Пример 1. В процессоре ( с ФТ, целочисленной арифметикой, формат представления исходных данных и результатов – слово длиной 16 битов) выполняется программа преобразования массива из 100 (N=100) коэффициентовai (ai– дробные числа) в другие, вычисленные по заданному алгоритму,100 коэффициентовbi

Дополнительно среди коэффициентов biрассматривается количествоLкоэффициентов, значение которых удовлетворяет некоторому условию алгоритма. Рассмотрим:

  1. Представление в программе (с помощью соответствующих директив языка ассемблера) исходных данных –

коэффициентов aiи их количестваN.

  1. Определение истинных значений коэффициентов bi, а также количестваLпо рассчитанным в процессоре значениям.

Решение задачи иллюстрирует табл. 3.6. Итак:

  1. В процессорах с целочисленной арифметикой при выполнении арифметических операций все числа воспринимаются как целые, поэтому дробные числа необходимо заменить ихцелочисленными эквивалентами, в примере:

ai Ai,

где Ai– целочисленный эквивалентai.

Целочисленные эквиваленты Aiкоэффициентовai(все коэффициенты по модулю меньше 1) находятся из пропорции

1 – 32768

ai–Ai,

откуда Ai= 32768.ai, например,A0 = 32768. 0,57 = 18677,76 или, после округления,a0 = 18678 и т. д. (см. табл.3.6). В программе истинные значения коэффициентовaiзаменяются их целочисленными эквивалентамиAi.

Количество N– целое число, поэтому его целочисленный эквивалент определять не требуется.

  1. В результате выполнения программы вычислены целочисленные эквиваленты Bi истинных коэффициентовbi, а также значениеL– целое число.

Истинные значения коэффициентов biнаходятся по их целочисленным эквивалентамBiиз пропорции

1 – 32768

bi –Bi ,

откуда bi=Bi/ 32768, например,b0=B0/ 32768 = 2457 / 32768 = 0,0749816 (с точностью до 7 значащих цифр после запятой) и т. д. (см. табл.3.6).

Количество L– целое число, поэтому в результате вычислений выдается его истинное значение.

Таблица 3. 6. Истинные значения и целочисленные эквиваленты

Исходные данные

Результаты вычислений

Имя

Истинное значение

Целочисленный эквивалент

Имя

Целочисленный эквивалент

Истинное

значение

а0

0,57

18678

b0

2457

0,0749816

a1

- 0,13895

_ 4553

b1

31099

0,9490661

a2

0,3

9830

b2

_123

_0,0037536

...

...

...

...

...

...

a99

0,85701

28083

b99

15348

0,4683837

N

100

Не вычисляется

L

55

55

      1. Представление данных при

дробной арифметике

При дробной арифметике (см. разд.3.7.5) значения исходных данных вещественного типа не масштабируются, если они не превосходят единицы по модулю, т. к. машинная единица, в отличие от ЦПОС с целочисленной арифметикой, равна 0,999... = 1. Это основное преимущество дробной арифметики. Если хотя бы одно из значений вещественных данных превосходит 1 по модулю, пользователь должен предусмотреть предварительное масштабирование.

При дробной арифметике следует масштабировать значения исходных данных целого типа для получения ихдробных эквивалентов. В этом случае максимальное по модулю целое число приравнивается к 1, а значения остальных данных целого типа находятся из пропорции.

Для конечных данных (результатов) целого типа, если необходимо знать истинные знчения результатов, требуется выполнить процедуру обратного масштабирования. Следует иметь в виду, что в алгоритмах ЦОС

Объем вычислений с данными целого типа, как правило, невелик.

Пример 2. Задача, поставленная в примере 1 из разд. 3.7.7, решается в процессоре сдробной арифметикой; формат представления исходных данных и результатов – слово длиной 16 битов.

Решение задачи иллюстрируется табл. 3.7.

  1. В процессорах с дробной арифметикой при выполнении арифметических операций все числа

воспринимаются как дробные, поэтому, если все исходные данные вещественного типа по модулю меньше

1 (как в нашем случае) и их не надо заменять дробными эквивалентами (табл.3.7).

Количество N– целое число, поэтому необходимо вычислить его дробный эквивалент, который в данном

случае равен

Nэкв= 0,999...= 1,

поскольку целое число одно, его дробный эквивалент соответствует машинной единице 0,999... = 1.

Полученный дробный эквивалент Nэквиспользуется в программе вместо соответствующего целого числа

N.

  1. В результате выполнения программы вычислены истинные значения коэффициентов bi (дробные числа,

вопрос о точности вычислений не рассматривается) и дробный эквивалент целого числаLэкв= 0,549

(табл. 3.7);

1 _100 (N)

Lэкв_L,

откуда L=Lэкв .100 = 0,5499.100 = 54,99 = 55 (см. табл. 3.7).

Таблица3.7.Истинные значения и дробные эквиваленты

Исходные данные

Результаты вычислений

Имя

Истинное значение

Дробный эквивалент

Имя

Дробный эквивалент

Истинное

значение

а0

0,57

Не вычисляется

b0

Вычисляются сразу истинные

0,0749

a1

- 0,13895

b1

значения

0,9490

a2

0,3

b2

коэффициентов

-0,0037

...

...

...

...

...

...

a99

0,85701

b99

0,4683

N

100

0,999... = 1

L

0,549

55

      1. Арифметические операции

в дополнительном коде

Основным преимуществом дополнительного кода является то, что все арифметические операции с числами независимо от их типа, целые или дробные, выполняются одинаково – как с беззнаковыми числами, когда знаковый разряд воспринимается как старший значащий. Результат арифметической операции представлен также в дополнительном коле.

Рассмотрим особенности выполнения операций сложения, вычитания и умножения при использовании целочисленной и дробной арифметик.