高精度计算

✍ dations ◷ 2025-12-01 07:38:10 #高精度计算

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

相关

  • 细菌萜醇细菌萜醇也称为“细菌异萜醇”,是一种由乳酸杆菌合成的、具有11个萜醇基的脂质。 这种分布于细菌中的聚萜醇是细胞膜多糖的O抗原侧链、细胞壁胞壁质的多糖骨架以及其它荚膜多
  • 批发价批发(英文对应词:Wholesale)是商品供应链中在生产者(包含初级生产与工业生产)与零售者之间从事销售的行为或行业,为贸易专业分工之下的产物。与零售最大的不同在于商品。为从事批
  • 水合反应在化学中,水合反应(hydration reaction),也叫作水化,是一种化学反应,其中物质与水结合。 在有机化学中,将水加入不饱和底物中,该底物通常是烯烃或炔烃。 这种类型的反应在工业上用于
  • 伊拉斯姆斯大学鹿特丹伊拉斯姆斯大学(荷兰语:Erasmus Universiteit Rotterdam),也译作鹿特丹伊拉斯谟大学,位于荷兰南部城市鹿特丹,是享誉世界的著名公立大学。该校以荷兰中世纪著名的人文主义思
  • 第三种道路第三条道路(英语:Third Way),又称新中间路线(Middle Way),是一种走在自由放任资本主义和传统社会主义中间的一种政治经济理念的概称。它由中间派所倡导,是社会民主主义的一个流派,英
  • 卡尔·亨普尔卡尔·G·亨普尔(1905年1月8日-1997年11月9日),德国作家与哲学家。 是 20 世纪科学哲学运动逻辑经验主义的重要人物。 亨普尔的重要贡献包括演绎模型(又称覆盖率模型)与乌鸦悖
  • 藤子不二雄Ⓐ藤子不二雄Ⓐ(1934年3月10日-),本名安孙子素雄(日语:安孫子 素雄/あびこ もとお ),男性,日本漫画家,是一位素食者。曾经与藤本弘(笔名藤子·F·不二雄)长期共用藤子不二雄这一笔名发表作
  • 上渡街道上渡街道是中国福建省福州市仓山区下辖的一个街道。上渡街道共辖7个社区,分别是:天民社区、新成社区、红星社区、洋洽社区、鹭岭社区、飞凤社区、滨洲社区。
  • 卡尔·亨利希·乌尔利克斯卡尔·亨利希·乌尔利克斯(Karl Heinrich Ulrichs,1825年8月25日-1895年7月14日),德国法律工作者,是近代欧洲第一个公开自己的同性恋倾向并著书为同性恋辩护并主张同性恋非罪化的
  • 神鹫号巡洋舰神鹫号(德语:SMS Condor)是德意志帝国海军建造的一艘四等巡洋舰,为六艘�级巡洋舰的四号舰。该舰自1891年开始在汉堡的布洛姆与福斯船厂铺设龙骨,1892年2月下水,至同年12月交付使用(英语:Ship commissioning)。神鹫号是专为执行海外任务而设计,装备有八门105毫米口径的主炮,航速可达16.2节(30.0千米每小时)。神鹫号的大部分服役生涯都在海外度过,先是于1890年代被派驻德属东非,继而于20世纪初在太平洋的南海基地又度过了一段时间。在1899年第二次布尔战争期间与英国关系