Алгоритм выполнения операций умножения двоичных чисел

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

000000100000000000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000010000000000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000001000000000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000100000000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000010000000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000001000000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000100000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000010000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000001000000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000100000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000010000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000001000000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000100000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000010000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000001000000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000100000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000010000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000001000 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000100 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000010 Z->

|0000000000000000000000000000000000000000000000000000000000000000|0000000000000000000000000000000000000000000000000000000000000001 m(b)(-2)=1: +m(a)

+

|0000000000000000000000000000000000011011011111001101111111011001

|0000000000000000000000000000000000011011011111001101111111011001|0000000000000000000000000000000000000000000000000000000000000001 Z->

|0000000000000000000000000000000000001101101111100110111111101100|1000000000000000000000000000000000000000000000000000000000000000

мантисса(Z(обр))=00.0000000000000000000000000000000000001101101111100110111111101100

P(z)=1+2=3(Z(pr.))=00.0000000000000000000000000000000000001101101111100110111111101100

Сдвиг на 36 влево 00.1101101111100110111111101100 P(z)=3-36=-33=0.1101101111100110111111101100*2^-33=0.0000000000000000000000000000000001101101111100110111111101100=0.000000000100000000

Абсолютная погрешность: 6.31088724176809E-0030

Относительная погрешность: 6.31088724176809E-0020

Истинное значение: 1.00000000000000E-0010

 

Вывод

 

В ходе выполнения работы были приобретены навыки выполнения построения логических основ ЭВМ. Так же подробнее изучены форматы представления двоичных чисел с плавающей точкой.

 

Список использований литературы

 

1.Савельев А.Я. Основы информатики. М.: Изд-во МГТУ им. Н.Э. Баумана, 2001 г., 328с.

.Григорьев В.Л., Злобин В.К. Программирование арифметических операций в микропроцессорах. М.: Высш. школа, 1991. 303с.

 

Листинг программы

 

{$N+}kjhsg;crt;n,ai:integer; as,as1,as2,vvs,vvs2,zs1,zs2:string; ach,zn:char;s1,ch1s2,ch2s1,ch2s2:string; ch1s1dv,ch2s1dv,ch1s2dv,ch2s2dv:string;n2,ch2n2:longint;n1,ch2n1:extended;,avto:boolean;,porx,pory,porx2,pory2:integer;porxs,porys:string;,chpy:string;,chpminy,norzac:boolean;,ma2,ma3,mb1,mb2,mb3:string;,z2,z3,mz1,mz2,mz3:string;:string;,por2,por,por3,norsdv:longint;,pos2,pos1i,pos2is,pos2i:string;,nast,nast1,nast2,abspog:extended;,smeshgen2:string;avshag;chk:char;avto=false then begin:=readkey;readkey of

#75:shag:=true;

#77:avto:=true;;;;DecToBin(const aStr : String;var zs,s1,s2:string;var nst:extended);= 10;= 2;, PosDot,aq,tochnost: Integer;, vStr, StrSign, StrDot,as1q,as2q : String;, TmpNum, Weight : Extended; cel:boolean;aStr = then Exit;aStr[1] = - then begin:= -;:= Copy(aStr, 2, Length(aStr) - 1);else begin:= ;:= aStr;;:=StrSign;:= Length(vStr) + 1;i := 1 to Length(vStr) do beginvStr[i]=. then begin:= i;;;;:= 0;:= 1;i := PosDot - 1 downto 1 do beginvStr[i] of

0 : Num := Num + 0 * Weight;

1 : Num := Num + 1 * Weight;

2 : Num := Num + 2 * Weight;

3 : Num := Num + 3 * Weight;

4 : Num := Num + 4 * Weight;

5 : Num := Num + 5 * Weight;

6 : Num := Num + 6 * Weight;

7 : Num := Num + 7 * Weight;

8 : Num := Num + 8 * Weight;

9 : Num := Num + 9 * Weight;;:= Weight * BaseIn;;:= 1 / BaseIn;i := PosDot + 1 to Length(vStr) do beginvStr[i] of

0 : Num := Num + 0 * Weight;

1 : Num := Num + 1 * Weight;

2 : Num := Num + 2 * Weight;

3 : Num := Num + 3 * Weight;

4 : Num := Num + 4 * Weight;

5 : Num := Num + 5 * Weight;

6 : Num := Num + 6 * Weight;

7 : Num := Num + 7 * Weight;

8 : Num := Num + 8 * Weight;

9 : Num := Num + 9 * Weight;;:= Weight / BaseIn;;:=num;:= ;:=64;:= Int(Num);Round( TmpNum - Int(TmpNum / BaseOut) * BaseOut ) of

: StrRes := 0 + StrRes;

: StrRes := 1 + StrRes;;:= Int(TmpNum / BaseOut);:=tochnost-1;TmpNum = 0;:= 0;:=true;:= Frac(Num);(TmpNum i) do begin:=false;i = 0 then StrRes := StrRes + .;:= TmpNum * BaseOut;Round(Int(TmpNum)) of

: StrRes := StrRes + 0;

: StrRes := StrRes + 1;;:= Frac(TmpNum);(i);;:=1;q:=;q:=;cel=false then begin(StrRes[aq]i)do begin:=tp*2;round(int(tp)) of

:ds:=ds+0;

:ds:=ds+1;;:=frac(tp);(i);;bin:=ds;;obrcod(os:string;minss:boolean):string;i,j,n,k:integer; dos:string;minss=false then begin obrcod:=os; exit; end;:=length(os);i:=1 to n doos[i]=1 then os[i]:=0 else os[i]:=1;:=os;;doraven(var rs1,rs2:string);length(rs1)2 then begin ms2:=summ(ms2,1); delete(ms1,1,1);end;;sdvig;ch1:char; i,n:integer;(z1,n,i);n of

:begin z1:=00;ch1:=z2[length(z2)];(z2,length(z2),1); z2:=0+z2;(z3,length(z3),1); z3:=ch1+z3; end;

: begin:=00;ch1:=z2[length(z2)];(z2,length(z2),1); z2:=1+z2;(z3,length(z3),1); z3:=ch1+z3;end;

: begin:=11;ch1:=z2[length(z2)];(z2,length(z2),1); z2:=0+z2;(z3,length(z3),1); z3:=ch1+z3;end;

: begin z1:=11;ch1:=z2[length(z2)];(z2,length(z2),1); z2:=1+z2;(z3,length(z3),1); z3:=ch1+z3; end;;;umnog;ch,chk:char; i,k,n:integer;shag,avto,mtrue2:boolean;n:=1 to length(mb2) do z2:=z2+0;:=00; z3:=mb2;(z1,|,z2,|,z3) ;chpminy then begin modslog(z1,z