高精度计算

✍ dations ◷ 2025-11-22 00:24:21 #高精度计算

高精度计算是一种程序设计的算法。由于中央处理器的字长限制,如32位CPU中一个整数最大只能取值4,294,967,295(=232-1)。因此在进行更大范围的数值计算中,往往要采取模拟手段。通常通过分离字符的方法通过数字数组进行输入、通过数组倒序输出、通过模拟竖式计算进行计算。一般而言,主要模拟的是按位运算,可以用不同的进位制达成不同的目的。

有许多程序库支持高精度计算,最著名的是GNU多重精度运算库。另外,Java,Python和Pascal也有本地的高精度运算支持。

高精度计算的一个常见应用是公开密钥加密,这些算法经常对长度上百位的整数进行运算。高精度计算的另一个应用是在需要没有人为限制位数和没有算术溢出的情况下使用。在检查固定精度计算的结果以及确定公式中系数的精确值或近似值时,高精度计算也很有用。比如,在高斯求积中,我们需要确定 1 / 3 {displaystyle {sqrt {1/3}}} 的值。

高精度加法是信息学的一种重要算法。这种算法使用多个存储单位进行计算,因此它的计算范围超过一般使用一个存储单位的算法。也是一些信息学竞赛的常考题目。

以358934760892734899+38960302975237462为例:

1、计算结果的位数

358934760892734899共18位

38960302975237462 共17位

故结果不会超过19位。

2、将要计算的数字分割成多段,按照顺序排列(这里以0-32767作为每一存储单位存储的数的限制):

(为提高空间利用效率,可以一个存储单位存储多位数。)

3、将两数相加。

4、输出结果。

从高位到低位依次输出。除最高位以外,其他低位上不足4位的要在前面补上0。

pascal:

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

c++:

相关

  • 唯我论唯我论(英语:Solipsism)是一个提出唯某者自己的心灵是确认之存在的哲学理论。唯我论是由拉丁语:solus,意为唯独、唯一,以及拉丁语:ipse,意为自我,所组成。字面意思为我。唯我论的历史
  • 未成年人未成年人(未成年者或未成人)是一个社会学或者法学的概念,即是还没有成年的人。在很多国家的法律上,未成年人即是未满法定成年年龄18岁的人。不同的社会或地区对未成年人在心理状
  • 巴黎条约 (1951年)巴黎条约(英语:Treaty of Paris,法语:Traité de Paris,德语:Pariser Vertrag),由 法国、 西德、 意大利、 荷兰、 比利时、 卢森堡这六个欧洲国家于1951年4月18日在巴黎签订
  • R显带中期染色体在磷酸盐缓冲液中经高温处理,然后用吖啶橙显带(吖啶橙荧光R带,RFA)或吉姆萨显带(即热处理吉姆萨R带,RHG)。其显示的人类染色体带型与Q带或G带相反,异染色质区如染色体的,一
  • 玛蕾特·阿尼玛蕾特·阿尼(爱沙尼亚语:Maret Ani,1982年1月31日-),爱沙尼亚女子职业网球选手,现在居住于爱沙尼亚塔林,生涯单打最高排名为63(2008年5月15日)。她是曾青少年的篮球冠军,她14岁开始打
  • 非洲桐科非洲桐属 非洲桐科又名独子果科或简称非桐科,只有1属2种,全部生长在非洲的马达加斯加岛,是当地的特有种。本科植物为小乔木或灌木;单叶互生,无托叶;花小或中等,花瓣5-9,花瓣内部有毛
  • 安腾安腾(英语:Itanium),是英特尔安腾架构(通常称之为IA-64)的64位处理器。英特尔推出了两个安腾的家族:其一是安腾,另一个是安腾2。在2007年11月1日,安腾2的家族又再一次称为。该处理器
  • 武卫军武卫军是清朝的一支现代化军事编制。它于光绪二十五年(1899年)5月或6月由步兵、骑兵和炮兵组成,由西方军事顾问训练。他们负责守卫北京和紫禁城,以兵部尚书协办大学士荣禄为总统
  • 皮埃蒙特大区皮埃蒙特 (意大利语:Piemonte, 发音:)是意大利西北的一个大区,大区面积有25,402平方公里,人口 4,377,941。大区首府是都灵。 皮埃蒙特三面被阿尔卑斯山山脉包围,包括波河的起源维素山脉,及罗莎山脉。大区与法国、瑞士、及意大利伦巴第、利古里亚、艾米利亚-罗马涅及瓦莱达奥斯塔大区相邻。 皮埃蒙特的低地是一块农产丰足的地区,盛产小麦、稻米、玉蜀黍及葡萄。是意大利著名的葡萄酒产区,其中该区出产的巴罗洛(英语:Barolo)红酒有“意大利酒王”之誉。该区也是主要的工业中心,其中都灵也是菲亚特车
  • 曹路宝曹路宝(1971年9月-),男,安徽天长人,中华人民共和国政治人物。1990年12月加入中国共产党,1993年8月参加工作,在职研究生学历,博士学位。曾任盐城市委书记。现任江苏省委常委、苏州市委书记。1989年9月,在北京财贸学院工商行政管理系工商行政管理专业学习。主要从政经历在南京市,从1993年由科员到2010年成为南京市下关区区长。2015年9月,任南京市秦淮区委书记。2017年6月,任南京市委常委、宣传部部长。2018年4月,任盐城市委副书记、代理市长、市政府党组书记。2021年7月,任盐城市委书