高精度计算

✍ dations ◷ 2025-12-02 05:06:02 #高精度计算

高精度计算是一种程序设计的算法。由于中央处理器的字长限制,如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++:

相关

  • 艾茵·兰德艾茵·兰德(Ayn Rand,1905年2月2日-1982年3月6日),原名“阿丽萨·济诺维耶芙娜·罗森鲍姆”(俄语:Алиса Зиновьевна Розенбаум)俄裔美国哲学家、小说家。她
  • 伊斯兰教研究伊斯兰教研究(英语:Islamic studies),对于伊斯兰教知识进行研究,所有学科的总称。对穆斯林来说,它包括了对伊斯兰教思想传统的全面性研究,如伊斯兰神学(kalam)、伊斯兰教法学(fiqh),以及
  • 毛利光房毛利光房(1386年-1436年),是室町时代在安艺国的国人领主。毛利氏当主。父亲是毛利广房。本名之房。官位是从五位下右马头。儿子有煕元、元忠。女儿是山内煕通室。在元中3年/至德3
  • 理查·佛罗里达理查‧佛罗里达(1957年11月26日-)是一位都市规划理论研究学者,主要研究领域为社会经济理论。目前任教于加拿大多伦多大学约瑟夫罗特曼管理学院(Joseph L. Rotman School of Manag
  • 格兰茨帕斯格兰茨帕斯(Grants Pass)是美国俄勒冈州的一座城市,约瑟芬县县治,2007年人口34,237人。位于梅德福以西北,5号州际公路途经当地。
  • 王觐 (明朝宦官)王觐(?年-?年),字宗尧,直隶保定府人,明朝正德时期的御马监太监。正德年间,任御马监太监。正德十六年,任大同镇守太监。
  • 白浩民白浩民(韩语:백호민),韩国MBC旗下之电视剧导演与制作。
  • 2015年波兰议会选举埃娃·科帕奇公民纲领贝娅塔·席多法律与公正2015年波兰议会选举于2015年10月25日举行。这次选举下议院的多议席选区采用汉狄法名单比例代表制,当中包括单个政党5%的门槛和政党联盟8%的门槛(少数族群党派例外);上议院则采用小选区多数制。根据官方公布的投票后民调,反对党法律与公正在大选中获胜,以39.1%得票压倒只获得23.4%得票的执政党公民纲领。贝娅塔·席多极有可能成为继埃娃·科帕奇后的新总理。
  • 埃尔娜·比尔格埃尔娜·比尔格(德语:Erna Bürger,1909年7月26日-1958年6月26日),德国女子竞技体操运动员。她曾代表德国参加1936年夏季奥林匹克运动会体操比赛,获得女子团体全能金牌。
  • 帝京短期大学帝京短期大学(日语:帝京短期大学/ていきょうたんきだいがく  *),简称“帝京短大”・“帝短大”・“帝短”,是一所位于日本东京都涩谷区的私立短期大学。帝京大学短期大学、帝京平成护理短期大学、帝京学园短期大学等是姊妹校。