高精度计算

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

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

種類[编辑]

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

高精度加法举例[编辑]

Pascal代码如下

var
  a,b,c:array[1..201] of integer; 
  n:string; 
  lena,lenb,lenc,i,x:integer; 
begin
  readln(n); 
  lena:=length(n); 
  for i:=1 to lena do a[lena-i+1]:=ord(n[i])-ord('0'); 
  readln(n); 
  lenb:=length(n); 
  for i:=1 to lenb do b[lenb-i+1]:=ord(n[i])-ord('0'); 
  i:=1; x:=0; 
  while (i<=lena) or(i<=lenb) do
  begin
    c[i]:=a[i]+b[i]+x; 
    x := c[i] div 10;  
    c[i] := c[i] mod 10;  
    i := i + 1; 
  end; 
  if x>0 then
  begin
    lenc:=i; 
    c[i]:=x; 
  end
  else lenc:=i-1; 
  for i:=lenc downto 1 do write(c[i]); 
end.

外部链接[编辑]