高精度计算

维基百科,自由的百科全书
跳转至: 导航搜索

高精度计算是一种程序设计算法。由于CPU的字长限制,如32位CPU中一个整数最大只能取值4,294,967,295。因此在进行更大范围的数值计算中,往往要采取模拟手段。通常通过分离字符的方法通过数字数组进行输入。通过数组倒序输出。通过模拟竖式计算进行计算。

種類 [编辑]

  • 高精度加法
  • 高精度減法
  • 高精度乘法
  • 高精度除法

高精度加法举例 [编辑]

Pascal代码如下

var s,s1,s2:string;
    a,b,c:array [1..1000] of integer;
    i,l,k1,k2:integer;
begin
    readln(s1);
    readln(s2);
    l:=length(s1);
    k1:=1000;
    for i:=l downto 1 do
    begin
         a[k1]:=ord(s1)-48;
        k1:=k1-1;
    end;
    k1:=k1+1;
    l:=length(s2);
    k2:=1000;
    for I:=l downto 1 do
    begin
        b[k2]:=ord(s2)-48;
       k2:=k2-1;
    end;
    k2:=k2+1;
    if k1>k2 then
         k:=k2
     else
         k:=k1;
    y:=0;
    for i:=1000 downto k do
    begin
        x:=a+b+y;
        c:=x mod 10;
        y:=x div 10;
    end;
    if y<>0 then
     begin
         k:=k-1;
         c[k]:=y;
    end;
    for i:=k to 260 do
         write(c);
    writeln;
end.

外部链接 [编辑]