1 Star 0 Fork 0

徒步天下 / EOJ

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
高精度计算.md 1.30 KB
一键复制 编辑 原始数据 按行查看 历史
徒步天下 提交于 2018-03-09 10:35 . 新建 高精度计算.md

高精度计算

目的

有一些很大的数,超出长整型的数值范围,需要使用高精度计算。

思路

  1. 使用数组 H[] 保存高精度数,数组的每个元素保存一位数字。

把个位保存到 H[0],依次是十位、百位。。。,无数字的高位置0。

  1. 如果考虑0位较多的情况,可以考虑记录数字位数 len, 这样H[0]~H[len-1] 就可以表示全部的高精度数。

所表示的高精度数值 = H[len-1] * 10^(len-1) + H[len-2]*10^(len-2)+...+ H[2] *10^2 + H[1] * 10^1 + H[0] * 10^0

  1. 对于负数的情况,可以考虑增加一个符号标志,数值采用绝对值。(这只是一种方法,还可以采用补数等表示法)
  2. 四则运算。可以比照笔算的竖式计算。
  3. 加法,位数对齐,个位起从低向高逐位相加,注意是否进位。
  4. 减法,位数对齐,个位起从低向高逐位相加,注意是否借位。
  5. 乘法(先考虑多位数乘以一位数),个位起从低向高逐位相乘,注意是否进位。多位数乘以多位数,则先用前法计算,再做移位相加。
  6. 除法(先考虑多位数除以一位数),个位起从高向低逐位计算,注意是否借位。
  7. 输入输出: 一般采用字符串形式,编写两个转换函数。
1
https://gitee.com/se17a/EOJ.git
git@gitee.com:se17a/EOJ.git
se17a
EOJ
EOJ
master

搜索帮助