|
|
本帖最后由 liuyi 于 3-25-2026 18:05 编辑
RT的中B课堂Lesson3是高精度计算,同学们的程序可以轻松进行指定位数的高精度加法和乘法。
课后作业是:能不能基于int的高精度计算,做一套float的高精度计算程序?
这是课堂的ppt
很多同学在做这个作业的时候,遇到了一些细节问题,来找我讨论。实际上呢,这个float高精度计算,还是需要设计。
所以,就来论坛上和大家详细讨论。
首先,课堂的乘法函数,是基于加法函数的。所以,乘法里所有的加法,都坚决调用加法函数,绝不另外搞一套。
那么,新写的float运算,是基于int运算的,其int部分也坚决调用已有函数,也绝不另外搞一套。
按照工程设计,分两步走。数据格式处理和计算。
先完成计算。
计算部分的代码,仅增加了一个函数用来小数点对齐
对齐函数point_align就不用贴代码了。从上面的调用也可以看到,输入是n1List, n1Point, n2List, n2Point,输出是n1Point, n2Point,函数代码非常简单。加法需要小数点对齐,乘法不需要,实际也是乘法更简单。
可以看到,1.5和1.25在输入的时候如图。
输出部分:
150 2是向1.25对齐后的1.5
125 2就是1.25
275 2是1.5+1.25=2.75
18750 4是1.5*1.25=1.875
第一步计算,完成!
然后开始格式部分
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|