Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ќперации в јЋ” на двоичными числами с плавающей точкой




 

– Ц пор€док

ћ Ц мантисса

 

ј=ћ*2

≈сли – определ€ет диапазон представлени€ чисел в Ё¬ћ, то ћ Ц точность представлени€ чисел в Ё¬ћ.

 

—:=јq¬; qÎ{+,-,*,/}

 

Ќеобходимое оборудование:

N+2 разр€д в мантиссах необходим дл€ округлени€, т.к. выполнение операций с плавающей точкой св€заны с потерей точности.

 

ќперанды (ќѕ) поступают из пам€ти в ќј в нормализованном виде; знаковые разр€ды дублируютс€ только на ќЁ. –езультат операции тоже должен быть в нормализованном виде.

Ќормализованное число: 1/2£|ћ|<1.

Ќормализованное число Ц это число, у которого перва€ информационна€ цифра мантиссы равна 1 дл€ положительных чисел и равна 0 Ц дл€ отрицательных чисел, и знаковые разр€ды мантиссы при этом одинаковые.

0 0,1 1001 Ц нормализованное число

1 1,0 011 Ц нормализованное число

 

“ребовани€ дл€ нормализованных чисел:

ћс(0)Åћс(2)=1

ћс(0)Åћс(1)=0.

 

¬иды нарушени€ нормализации:

1. Ќарушение нормализации влево(переполнение мантиссы).

01,110

01 Ц дл€ положительных чисел

10 Ц дл€ отрицательных чисел

¬осстановление нормализации в этом случае происходит сдвигом мантиссы на один разр€д, при этом мантисса уменьшаетс€ в два раза, поэтому пор€док нужно увеличивать на 1.

 

2. Ќарушение нормализации вправо(знаковые разр€ды мантиссы равны, но не выполн€етс€ условие: ћс(0)Åћс(2)=1).

00.00010

11.110

¬осстановление нормализации возможно сдвигом мантиссы влево и уменьшением пор€дка на 1.

 

-1/210=11,1002 Ц нормализованное число, не выполн€етс€ условие ћс(0)Åћс(2)=1;

+1/210=00,1002

 

»сключительные ситуации при нормализации и после выполнени€ операций с плавающей точкой.

1. јварийное завершение операции(прерывание).

ћантисса=0, а пор€док любой. —итуаци€ така€ называетс€ потер€ значимости.

Fпз:=1; –:=0.

 

2. ѕри нарушении нормализации влево, после сдвига мантиссы вправо может возникнуть переполнение пор€дка. “ака€ ситуаци€ называетс€ переполнение пор€дка.

Fпп :=1.

 

3. ѕри нарушении нормализации вправо, после сдвига мантиссы влево может возникнуть отрицательное переполнение пор€дка. “ака€ ситуаци€ называетс€ исчезновением пор€дка.

Fип :=1.

 

ћикропрограмма нормализации чисел:

јлгоритм сложени€ чисел с плавающей точкой.

ƒаны:

ј=ћј*2–а

¬=ћ¬*2–в

Ќайти:

—=ћ*2–с

ќперанды и результат должны быть в нормализованном виде.

 

  1. ѕроверка особых ситуаций:

≈сли ћ¬=0, то —:=ј

≈сли ћј=0, то —:=¬

ѕереход к концу.

 

  1. ¬ыравнивание пор€дков.

0,5*103+0,4*102=0,5*103+0,04*103=0,54*103.

¬ычисление разности пор€дков: –:=–ј-–¬.

≈сли |–|³n+1, то сумма принимаетс€ равной числу с большим пор€дком:

≈сли –=0, то —:=ј;

≈сли –=1, то —:=¬.

ѕереход к концу.

≈сли –¹0, то производитс€ уравнивание пор€дков слагаемых, путем приведени€ числа с меньшим пор€дком к числу с большим пор€дком. ”равнивание пор€дков выполн€етс€ арифметическим сдвигом мантиссы числа с меньшим пор€дком вправо на число разр€дов равное |–|.

≈сли «н–с=1, то преобразуетс€ ћј.

≈сли «н–с=0, то преобразуетс€ ћ¬.

—двиг осуществл€етс€ следующим образом:

ѕри каждом элементарном сдвиге на 1 разр€д из – вычитаетс€ 1, если сдвигаетс€ ћ¬, и прибавл€етс€ 1, если сдвигаетс€ ћј.

¬ыход из цикла по –=0.

≈сли ћј и ћ¬ представлены в пр€мом коде, то старшие освобождающиес€ при сдвиге информационные разр€ды заполн€ютс€ нул€ми; если в инверсном коде, то знаковыми разр€дами.

  1. ћантиссы, полученные после уравнивани€ пор€дков, складываютс€ как числа с фиксированной точкой.

ћ:=ћј¬.

ѕор€док суммы принимаетс€ равным наибольшему из пор€дков слагаемого.

:=max(–ј½–¬).

ќтличие от алгоритма сложени€ с фиксированной точкой Ц не вырабатываетс€ сигнал переполнени€, т.к. возможна нормализаци€ со сдвигом вправо.

 

  1. ќкругление мантиссы результата осуществл€етс€ прибавлением 1 к n+2 разр€ду сумматора мантисс.
  2. Ќормализаци€ результата (см. алгоритм выше).

 

»сключительные ситуации при сложении:

Ј ѕотер€ значимости;

Ј ѕереполнение пор€дка при нормализации со сдвигом вправо;

Ј »счезновение пор€дка при нормализации со сдвигом влево.

 

”множение чисел с плавающей точкой.

—=ј*¬

ƒаны:

ј, ћј, –¬, ћ¬.

Ќайти:

, ћ.

  1. ѕор€дки складываютс€ по правилам сложени€ чисел с фиксированной точкой. ћантиссы перемножаютс€ по правилам умножени€ чисел с фиксированной точкой.
  2. ћладшие разр€ды произведени€, выдвигаемые в такте сдвига из сумматора мантисс, не сохран€ютс€, кроме n+2 разр€да.
  3. –езультат округл€етс€ добавлением 1 в n+2 разр€д ћ и нормализуетс€.

 

»сключительные ситуации:

    • »счезновение пор€дка при нормализации со сдвигом влево;
    • ѕереполнение пор€дков, т.к. имеет место сложение пор€дков в алгоритме.

 

ƒеление чисел с плавающей точкой.

 

—=ј/¬.

=–ј-–¬;

ћј¬.

 

ѕор€дки вычитаютс€, а мантиссы дел€тс€ по соответствующим алгоритмам выполнени€ операций с фиксированной точкой.

 

»сключительные ситуации:

Ј ƒеление на ноль;

    • »счезновение пор€дка при нормализации со сдвигом влево;

Ј ѕереполнение пор€дков, т.к. имеет место сложение пор€дков в алгоритме.

ќсобенности примен€емого алгоритма делени€ с фиксированной точкой.

¬ классический алгоритм делени€ внос€тс€ незначительные изменени€:

Ј ћј перед выполнением делени€ с фиксированной точкой сдвигаетс€ влево на один разр€д, пор€док увеличиваетс€ на 1.

Ј ѕредусматриваетс€ нормализаци€ со сдвигом влево.

 

 

¬ыполнение операций дес€тичной арифметики в јЋ”.

Ќе во всех системах команд есть такие операции. Ќаличие операций дес€тичной арифметики целесообразно дл€ несложных расчетов коммерческого характера с простыми формулами, где нужны целочисленные вычислени€ и невыгодно переводить числа в двоичные представлени€ и обратно, дл€ того чтобы над ними выполнить 2-3 операции.

 

ƒес€тичные числа представл€ютс€ в јЋ” в двоично-дес€тичном коде.

 

—ложение двух дес€тичных чисел сводитс€ к последовательной выработке сумм вида:

PiCi=Ai+Bi+Pi+1, где

Ai и Bi Ц четырехразр€дные коды дес€тичных цифр слагаемых;

Pi+1 Ц дес€тичный перенос(перенос со сдвигом 10) из предыдущего младшего дес€тичного разр€да суммы;

Pi Ц дес€тичный перенос в следующий старший разр€д суммы;

Ci Ц 4-х разр€дный двоичный код цифр суммы

Ai+Bi+Pi+1<=19;

 

ѕостроение такой схемы достаточно сложное и схема будет сложной, поэтому обычно дл€ сложени€ дес€тичных чисел используетс€ обычный двоичный сумматор, который настраиваетс€ на уровне микропрограммы применительно к специфике сложени€ дес€тичных чисел.

¬ычисление дес€тичной суммы может быть параллельно-последовательным процессом, т.к. двоичный сумматор имеет ограниченную длину, а число дес€тичных цифр может варьироватьс€.

 

“ри случа€ возникающие при сложении дес€тичных чисел на двоичном сумматоре:

  1. 0£Ci£9 Ci

0010+0011=0101

Pi=0

  1. 10£Ci£15 Ci

1001+0011=1100

Pi=0

надо: Pi=1, Ci=0010

+

P-1.0010 - Ci

 

  1. 16£Ci£19 Ci 0001

1000+1001=0001 +

Pi=1 0110

≈сли Ci³10, то всегда нужна коррекци€.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-02-12; ћы поможем в написании ваших работ!; просмотров: 2255 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ћаской почти всегда добьешьс€ больше, чем грубой силой. © Ќеизвестно
==> читать все изречени€...

697 - | 641 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.024 с.