高精度计算

✍ dations ◷ 2025-12-01 14:24:50 #高精度计算

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

相关

  • 砖是一种建筑材料,外观呈长方体小块状,为构成墙体主要材料。由于砖的制作过程需要消耗耕地和大量的能量,目前正在逐步淘汰,代之以混凝土砌块。广义上,呈长方体状的建筑装饰材料也
  • 住宅区住宅,又称住所、房屋、家宅,是人所建筑以供居住的建筑物。一般有墙壁和屋顶,内部则区隔出房间,但也可不隔间。大部分住宅能抵挡各种天气变化,以至进侵的人或动物。住在同一住宅的
  • 布克科里·安东尼·布克(英语:Cory Anthony Booker;1969年4月27日-),是一位美国民主党政治人物,自2013年成为新泽西州联邦参议院议员。布克出生于华盛顿特区,在新泽西州博根县的哈灵顿柏
  • 圆舞曲圆舞曲(德语:Walzer,英文:Waltz,音译“华尔兹/滋”)有别于贝多芬、舒伯特、布拉姆斯等维也纳作曲家的严肃作品,它和“轻歌剧”(operette)可说是19世纪民主化社会中,为适应一般群众较
  • 李荣兴李荣兴(1959年-),美籍华裔测绘专家,上海人,现为同济大学教授。李荣兴早年毕业于同济大学,先后于1981年、1984年获学士、硕士学位。后赴德国留学,1990年获柏林工业大学摄影测量与遥感
  • 刘维 (四川商人)刘维(1969年4月-2015年2月9日),男,四川广汉人,中国商人,前广汉乙源实业公司老板,刘汉之弟,于2014年5月23日于湖北省咸宁市中级人民法院一审宣判死刑。因为刘汉、刘维兄弟涉及控制黑社
  • 雅科夫·绍洛维奇·阿格拉诺夫雅科夫·绍洛维奇·阿格拉诺夫(俄语:Я́ков Сау́лович Агра́нов 1893年10月12日-1938年8月1日)苏联政治家,内务人民委员部国家安全总局首任局长,内务人民委
  • 宋雪林宋雪林(1962年3月8日-),中国四川成都人,围棋职业九段棋手。他12岁学棋,13岁进体校,17岁进省集训队后进国家队,1982年定为四段,1998年升为九段。他曾获1980年新体育杯第二名和1986年国
  • 达米安·斯兹弗隆达米安·斯兹弗隆 (Damián Szifron,1975年7月9日-) 是一位阿根廷影视导演和编剧。最知名作品为电视剧 (2002)和电影《荒蛮故事》(2014)。他与电影理论作家Angel Faretta共同
  • 戴夫·德布斯切尔戴维·阿尔伯特·德布斯切尔(英语:David Albert DeBusschere,1940年10月16日-2003年5月14日),美国NBA职业篮球运动员和教练,奈史密斯篮球名人堂成员。他在1962年NBA选秀中以底特律大学球员的身份被底特律活塞队选中,在随后的NBA生涯中帮助纽约尼克斯夺得过两届总冠军,他也是联盟历史上最年轻的主教练。德布斯切尔出生在密歇根州的底特律,完成了12年的职业篮球生涯(1962–1974)并入选篮球名人堂,他职业生涯取得场均16.1分和11个篮板,八次入选NBA全明星阵容;在