高精度加法和减法

高精度算法(加法和乘法)

int占32位,4个字节,所以int的范围是[-231,231 -1],数量级为10^9

long long占64位,范围是[-263,263 -1],数量级为10^18

如果超过了long long 的数据范围,怎么办?——高精度

我这里只介绍加法和乘法,减法和除法大家可以安按照步骤自己思考

高精度算法的定义

当数大到连long long都存不下时,可以使用高精度。高精度算法实质上就是在模拟数学中的列竖式计算,处理进位等

高精度加法

想想我们小学学的加法列竖式计算,从从低位算起,加起来的结果满十进一,其实这很简单就是用代码表示会比较难

思路

第一步,读取数据,将整数翻转存入数组,先读入两个字符串,再将每一位-'0'的ASCII码就可以得到对应数字了
第二步,各位相加并进位,先将这两位上的数字相加,再加上上一位的进位,然后判断和是否大于等于10,是的话就将进位(c[i]/10)存储到一个变量里,否则将此变量置0
第三步,删除前导零,从高位开始找,如果有一个为不等于0,将此位置记下并结束循环,输出时从此位置开始
第四步,输出,注意:从第三步标记的那个位置开始

有疑惑了是吧?第一步为什么要倒着存储呢?想想竖式计算,按位对齐&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值