高精度的概念
高精度计算是指在进行数值计算时,能够处理非常大的数值范围,或者非常小的数值精度。这种计算方式通常用于处理大数运算、浮点数运算、高精度时间戳等问题。高精度算法是处理大数字的数学计算方法,用于计算小数点后几百位或更多的数字。高精度算法包括加、减、乘、除、乘方、阶乘、开方等运算。
我们知道,在 C++ 中,可以存储最大的数字的数据类型是unsighed long long,但它最大也只能存储 264−12^{64}-1264−1(18446744073709551615)。若数字再大一些,它就会溢出。这时候,我们就可以用到高精度运算了。
C++ 中double最多也只能保留 15-16 位有效数字。若精度要再高一些,也需要用到高精度运算。
高精度的原理
用数组 / 字符串存储超大数的每一位,模拟手工竖式运算,逐位计算并处理进位 / 借位等,突破标准数据类型的范围限制。
高精度的存储
1. 字符串输入:大数以字符串读入(如"12345678901234567890")。
2. 数组存储(低位在前):
数字 123 → 数组 [3, 2, 1](下标 0 存个位,下标 1 存十位,以此类推)。
好处:进位直接加到 i+1 位,无需频繁移动数组元素。
下期:2026.03.14 更新,高精度加法运算 1 & 2