高精度计算

✍ dations ◷ 2025-12-04 17:04:55 #高精度计算

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

相关

  • 神经性毒剂神经性毒剂(Nerve agent)是一类含磷的有机化学物质(有机磷酸盐),可以破坏生物神经将信息传递到器官的机制。神经性毒剂借由阻断乙酰胆碱酯酶,乙酰胆碱酯酶是降解(通过其水解活性)神
  • 审判员推官,唐代设置,最早是节度使、观察使等官的属官,多掌理司法,不系京职,后期成为对法官的雅称。清末,改称推官为“推事”,民国初年仍称法官为“推事”。唐朝节度使、观察使、团练使、
  • 劳伦斯·贡齐劳伦斯·贡齐(马耳他语:Lawrence Gonzi,1953年7月1日-),马耳他政治家,马耳他国民党领袖,前马耳他总理、财政部长。1975年获马耳他大学法学博士学位后开始担任律师。曾长期从事法律、
  • 郑洪猷郑洪猷,广东海丰县坊廓都人,明朝政治人物,同进士出身。崇祯元年(1628年)戊辰科进士,授安徽泾县知县,后升刑部主事。
  • 治茆山治茆山,有人称之为治苑山,可能是笔误。位于台湾南投县信义乡双龙村,属玉山山脉北段。座标为:23.744661, 120.981115,海拔2909.058米。山顶有一等三角点花岗石基石。与其西南方之
  • 1987年马来西亚羽毛球公开赛1987年马来西亚羽毛球公开,是第32届马来西亚羽毛球公开赛,于1987年7月14日至19日在马来西亚首都吉隆坡举行。本届赛事五个项目中,仅有男子双打的贾兰尼·西迪/拉希德夫·西迪组合卫冕成功,而且是三连霸。
  • 娜塔莉·安博莉亚娜塔莉·珍·安博莉亚(英语:Natalie Jane Imbruglia,发音: /ɪmˈbruːliə/;1975年2月4日-),是澳大利亚的创作型歌手,模特和女演员。娜塔莉名列VH1前100位最性感艺术家第90名。1975年2月4日娜塔莉出生于澳大利亚悉尼,她的父亲有意大利血统(来自意大利西西里岛)母亲是英国裔澳大利亚人,他们有四个女儿,娜塔莉是老大。在15岁时,她与她的家人搬到悉尼。娜塔莉学习芭蕾,踢踏舞,以及高地舞蹈,希望把跳舞作为一个职业。16岁时,她离开了高中,开始了演艺生涯。她的才能很快得到
  • 安努亚慕沙丹斯里安努亚·慕沙(马来语:Annuar Musa,1956年5月18日-),马来西亚政治人物,为巫统党员。他也是现任通讯及多媒体部长、前国民阵线总秘书。安努亚毕业于马来西亚工艺大学和伦敦大学学院,他在第四任首相马哈迪·莫哈末执政下曾担任马来西亚青年及体育部长及农村发展部长。2021年1月5日,安努亚被巫统主席阿末扎希革除“国阵总秘书”一职,由阿末马斯兰取代,随后他开始力数扎希七宗罪。2018年10月24日,安努亚邀请时任首相马哈迪·莫哈末重返巫统。10月25日,吉打州州务大臣慕克里·马哈迪在国会走廊接受
  • 樋速日神樋速日神(日语:ヒハヤヒノカミ)乃《古事记》之记述,《日本书纪》则作熯速日神,《出云国风土记》写成樋速日子命,该神祇是日本神话里的火神。依照《古事记》上卷之记述,伊邪那岐命斩杀迦具土之后,其血滴从剑落到岩石上,其中十拳剑(天之尾羽张)剑锋落下的血生成石拆神、根拆神和石筒之男神;剑身落下的血生成瓮速日神、樋速日神和建御雷之男神;剑柄落下的血生成暗淤加美神和暗御津羽神。根据《日本书纪》卷第一记载的第六种说法里,伊奘诺尊拔出十握剑(天之尾羽张)斩杀烧死伊奘冉尊的轲遇突智成三段,剑柄滴下之血化作瓮速日神、熯速日神
  • 巴塔克语巴塔克语(Toba–Batak ᯘᯮᯒᯖ᯲ ᯅᯖᯂ᯲),是印尼巴塔克人的一种主要语言。过往的历史巴塔克语是使用巴塔克文字书写的,但现在大多的写作是使用拉丁字母。