Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема роботи- Програмне моделювання машинних алгоритмів множення чисел з плаваючою крапкою.html

Работа добавлена на сайт samzan.net: 2016-01-17

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.5.2024

Тема роботи: Програмне моделювання машинних алгоритмів множення чисел з плаваючою крапкою.

Мета роботи: Розглянути машинні алгоритми виконання операції множення над числами у форматі з плаваючою крапкою. Програмно промоделювати машинні алгоритми множення чисел з плаваючою крапкою.

Теоретичні відомості:

Множення чисел, які представлені у форматі з плаваючою крапкою, відбувається за наступною схемою. Порядок результату визначається шляхом додавання порядків першого та другого множників. Для визначення мантиси результату  виконують множення мантис множників як чисел у форматі з фіксованою крапкою. Мантиса добутку може бути денормалізованою праворуч. В такому випадку необхідно виконати нормалізацію результату, зсунувши його на один розряд ліворуч, та зменшивши порядок на одиницю. Знак мантиси добутку визначається шляхом додавання по модулю 2 знаків операндів множення.

Розглянемо приклад:

Нехай маємо число A = 27.125 та число B = 45.56. Необхідно обчислити C = A*B, для чого представити множники у форматі SINGLE та виконати множення з молодших розрядів другого множника та зсувом першого множника ліворуч.

У форматі SINGLE число A матиме вигляд:

0 10000011 10110010000000000000000

Число B у форматі SINGLE виглядатиме так:

0 10000100 01101100011110101110001

Характеристику результату визначаємо як 10000011  + 10000100 – 01111111 = 10001000

Виконуємо операцію множення мантис з молодших розрядів другого множника та зсувом першого множника ліворуч:

Початковий стан:

                                                                                                1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1  0  1  1  1  0  0  0  1

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №1

                                                                                                0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1  0  1  1  1  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №2

                                                                                                0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1  0  1  1  1  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №3

                                                                                                0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1  0  1  1  1  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №4

                                                                                                0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1  0  1  1  1

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №5

                                                                                                0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1  0  1  1

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  0  0  1  1  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №6

                                                                                                0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1  0  1

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  0  0  1  1  0  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №7

                                                                                                0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  1  1  1  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №8

                                                                                                0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0  1

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  1  1  1  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №9

                                                                                                0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  1  1  1  0  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №10

                                                                                                0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1  1

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  1  1  1  0  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №11

                                                                                                0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1  1

0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  1  0  0  1  1  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №12

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1  1

0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №13

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0  1

0  0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  0  1  1  0  0  0  1  1  1  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №14

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0  0

0  0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  1  1  0  1  0  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №15

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0  0

0  0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  1  1  0  1  0  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №16

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1  0

0  0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  1  1  0  1  0  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №17

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1  1

0  0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  0  0  0  1  1  0  1  0  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №18

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0  1

0  0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  0  0  1  1  1  1  0  0  1  1  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №19

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1  0

0  0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  1  0  1  0  1  0  0  1  0  1  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №20

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1  1

0  0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  0  0  1  0  1  0  1  0  0  1  0  1  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №21

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  1

0  0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  0  1  0  0  1  0  1  1  0  1  1  0  1  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №22

                                                                                               0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0

0  0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  1  0  1  1  0  1  1  1  1  1  1  0  1  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №23

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1

0  0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  0  1  0  1  1  0  1  1  1  1  1  1  0  1  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Крок №24

                                                                                                0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

0  1  1  0  1  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

1  0  0  1  1  0  1  0  0  1  1  1  1  0  1  0  0  0  0  1  0  1  0  0  1  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

В результуючий добуток потраляють старші 24 розряди. Знак результату отримуємо шляхом виконання операції додавання по модулю 2 знакових розрядів множників.

0  0 = 0

Отже, в результаті виконання операції множення отримуємо:

С = 10011010011.1101000010100 (В десятковій системі числення 1235.815)

У форматі SINGLE значення C матиме вигляд:

0 10001000 00110100111101000010100

3 варіант.

Результат роботи на Pascal: 

program Project1;

{$APPTYPE CONSOLE}

uses

 SysUtils;

 const x1='110.101100110010100000000000000000000000000000000000000000000000';

          x2='110000000000000000000000000000000000000000000000000000000000000';

 var a,b:string(*Single*);

 procedure SUM(b:string; var c:string;n:integer);

   var j,r:integer;

 begin

   r:=0;

   for j:=n downto 1 do

     begin

       if ord(b[j])+ord(c[j])-96+r>1 then

         begin

           if ord(b[j])+ord(c[j])-96+r>2 then c[j]:='1'

             else c[j]:='0';

           r:=1;

         end

         else

           begin

            if ord(b[j])+ord(c[j])-96+r=1 then c[j]:='1'

               else c[j]:='0';

             r:=0;

           end;

     end;

 end;

 Function ERROR(a:string):boolean;

   var i,n:integer;

 begin

   ERROR:=FALSE;

   n:=length(a);

   if n<>64 then ERROR:=TRUE

   else for i:=1 to length(a) do

          if (a[i]<>'1')and(a[i]<>'0') then ERROR:=TRUE;

 end;

 function Multiplication(a,b:string):string;

   var i,j:integer;

       a1,b1,M,m1:string;

 begin

   if a[1]=b[1] then m1:='0'

     else m1:='1';

   (*A*)  a1:=copy(a,2,11);

          a1:=concat('0000',a1);

          delete(a,1,11);

          a[1]:='1';

   (*B*)    b1:=copy(b,2,11);

            b1:=concat('0000',b1);

            delete(b,1,11);

            b[1]:='1';

            insert('0000000000000000000000000000000000000000000000000000',b,54);

            b:=concat('0',b);

   SUM(b1,a1,15);

   SUM('011100000000001',a1,15);

   M:='0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';

   for i:=53 downto 1 do

     begin

       if a[i]='1' then SUM(b,M,106);

       delete(M,106,1);

       M:=concat('0',M);

     end;

   i:=pos('1',M);

   M:=copy(M,i+1,48);

   while length(M)<>48 do M:=concat(M,'0');

   Multiplication:=concat(m1,a1,M);

 end;

Begin

 a:=x1;

 b:=x2;

 Writeln(a);

 Writeln(b);

 Writeln(Multiplication(a,b));

readln;

End.

Блок-схема процедури Sum

j:=n до 1; j:=j-1

Вхід

r:=0;

ord(b[j])+ord(c[j])-96+r>1

c[j]:='0';

c[j]:='1'

+

+

-

ord(b[j])+ord(c[j])-96+r=1

ord(b[j])+ord(c[j])-96+r>2

c[j]:='0';

c[j]:='1'

+

+

-

-

r:=0;

r:=1;

Вихід

-

Блок-схема функції

Вхід

ERROR:=FALSE;

n:=length(a);

n<>64

ERROR:=TRUE

i:=1 до length(a); i:=i+1

(a[i]<>'1')and(a[i]<>'0')

+

+

-

ERROR:=TRUE

-

+

-

Вихід


Multiplication

Вхід

m1:='0'

a[1]=b[1]

m1:='1';

+

-

a1:=copy(a,2,11);

a1:=concat('0000',a1);

delete(a,1,11);

a[1]:='1'; b1:=copy(b,2,11);            b1:=concat('0000',b1);

delete(b,1,11);

b[1]:='1';

insert('0000000000000000000000000000000000000000000000000000',b,54);

b:=concat('0',b);

SUM(b1,a1,15);  SUM('011100000000001',a1,15);

M:='0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';

1

1

I:=53 до 1; i:=i-1

a[i]='1'

+

SUM(b,M,106);

delete(M,106,1);

M:=concat('0',M);

+

-

i:=pos('1',M);    M:=copy(M,i+1,48);

-

length(M)<>48

M:=concat(M,'0');

+

Multiplication:=concat(m1,a1,M);

Вихід

-

Блок-схема програми lab_6

Початок

a:=x1;

b:=x2;

Кінець

Результат роботи програми:

Висновок: Я розглянув машинні алгоритми виконання операції множення над числами у форматі з плаваючою крапкою. Програмно промоделювати машинні алгоритми множення чисел з плаваючою крапкою.




1. Понятие, элементы и виды исков
2. а встречается в открытом грунте на север заходит только в теплицах повреждая главным образом огурцы и томат
3. Культурология Москва СанктПетербург Киев 2005 Издательский дом
4. организация относится к числу ведущих категорий организационной науки
5. реферат дисертації на здобуття наукового ступеня кандидата медичних наук Тернопіл
6. Типы словарей, используемые в русском языке
7. ИНТЕЛЛЕКТУАЛЬНОЕ ШОУ ВОРОШИЛОВСКИЙ СТРЕЛОК I
8. бесценное достояние не только каждого человека но и всего общества1
9. Курсовая работа- Организационное поведение в менеджменте
10. либо жившее на нашей планете весом почти 10 тонн и длиной 30 метров.html
11. семантическое отношение значений слов.html
12. РеставросЪ. Романтика с пользой для души и не только Мы едем туда где нас ждут Прикосновение к Ве
13. . Бюджет по своему экономическому содержанию
14. Психометрия
15. com-bestpslterium Самая большая библиотека ВКонтакте Присоединяйтесь Часть первая В не
16. Политика 1 Политика есть интереснейшее дело ибо все мы очень разные
17. Тема- освоенность территории Цель- дать понятие освоение территории рассказать о видах освоенности терр
18. Стратегический менеджмент Принципы формирования стратегии предприятия Стратегия как эффектив
19. Будущему России - достойного Президента
20. Законодательство Российской Федерации гарантирует социальную защиту всем участникам боевых действий