高精度计算
本文部分内容参考 链接https://blog.csdn.net/fwq990720/article/details/79233889
重新写了八进制小数的题目,发现这个题,不仅仅是进制转换,更与我不太熟悉的高精度/大数计算有关系。
通过这个道题,总结了几个高精度/大数计算的要点:
①字符串操作
②每位操作时候,只进行个位(单一数字)计算
③考试实地写时,笔算过程,多测试,考虑多种边界情况。
在某大佬同学的建议下,我决定写完这道题后,手撸大数加减乘除的操作。
一、八进制小数
首先对于高精度/大数计算,用C++语言时候,double和int等都有精度限制,所以这里一般都选择用字符串形式操作,这里要注意的是,在处理字符串时,每次也只能一次处理一个字符的计算操作,否则由于字符串的变长,就会变成伪高精度计算,跟使用double、int没有区别了。(上文已提过)


本题用了简易的大数除法这个东西,本题除数为8(所以并不太复杂),基本上要主要的点就是
1)先判断被除数是整数还是浮点数,用string.find()
2)储存一整数 f 作为计算时的余数储存
3)最后如果出现 .1283 这样没有0开头的小数,补上开头的0
4)计算时候,注意除不尽补0的操作

本部分倒序遍历处理思想,也是我看了大佬的题解,才会的

原文:https://www.cnblogs.com/Notherthing-hyc/p/11620057.html