高精度计算

✍ dations ◷ 2025-12-02 17:10:12 #高精度计算

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

相关

  • 叶光明叶光明(英语:Peter Derek Vaughan Prince,1915年8月14日-2003年9月24日)出生在印度,父母均为英国人。在英国伊顿公学和剑桥大学受过有关希腊语和拉丁语的优良教育,他曾在国王学院
  • 中国科学院信息工程研究所中国科学院信息工程研究所,简称中科院信工所,成立于2011年,隶属于中国科学院。其主要功能是在信息安全科技领域开展基础理论与前沿技术研究,开发应用性技术与系统。信工所有信息
  • 多瑙斯特雷达区坐标:47°59′33″N 17°37′1″E / 47.99250°N 17.61694°E / 47.99250; 17.61694多瑙斯特雷达区(斯洛伐克语:Dunajská Streda),是斯洛伐克的一个区,位于该国西部,由特尔纳瓦州
  • 司姓司姓是中文姓氏之一,在《百家姓》中排第259位,在现代是极罕见的姓氏。司姓有多种来源:
  • 天野明天野明(1973年6月22日-)是日本漫画家。爱知县出身。血型B型。代表作是已完结的《家庭教師HITMAN REBORN!》。
  • 2011年芝格锡袭击事件2011年芝格锡袭击事件,是指2011年2月6日发生于印度尼西亚万丹省板底兰县芝格锡镇翁布兰村的一起阿赫迈底亚信徒遇袭事件。事件造成3人身亡,5人受伤,2辆汽车,1辆摩托车和1所房子
  • 入侵者 (新加坡电视剧)《入侵者》(英文:Doppelganger),哇哇映画制作公司时装电视剧,由李铭顺、范文芳、徐彬领衔主演。为了宣传此剧共分为三个部分:前传、前传电视电影版及电视剧以吸引更多的观众。前传将在2月6日起,每逢星期二及星期五在新传媒网络平台Toggle播放;电视电影版前传则在3月11日,晚上7时在新传媒电视8频道播出;后传则从3月12日起,每逢星期一至五在新传媒电视8频道播出。此剧为哇哇映画10周年重头剧,亦是李铭顺和范文芳继《无炎的爱》之后相隔14年再度合演本地剧。讲述一个穷人和富豪身份调换的故事……事业本一
  • 务边国会议席务边国会议席是马来西亚的国会下议院议席之一,选区主要位于霹雳州近打县内,迪遮州席南部地区则位于金宝县内。于1984年创设至今,国会选区编号为P071。目前其下有三个州议席,分别是双溪喇叭(N44)、新邦波赖(N45)和迪遮(N46)。现任务边国会议员为李文材,来自希望联盟人民公正党。务边国会议席于1986年马来西亚选举委员会重划选区时创立,其前身为近打国会议席(英语:Kinta (federal constituency))的一部分。自务边国会议席创立以来,国阵马华公会在接连五届大选及一次补选中获胜,直至
  • 前568年
  • 安德烈娅·阿卡特里内伊安德烈娅·阿卡特里内伊(Andreea Acatrinei,1992年4月7日-)出生于布拉索夫,是一名罗马尼亚女子体操运动员。阿卡特里内伊从六岁开始在她的家乡参加体育训练。2005年她进入少年国家队,2006年进入国家队。在2008年夏季奥林匹克运动会体操比赛上她获得团体赛铜牌,但是未能进入竞技体操的决赛。同年她获得罗马尼亚自由体操冠军和高低杠和团体赛亚军。2009年由于脊椎有问题她按照医生建议结束了她的运动员生涯。此后她主要上课以及训练儿童。