在解题过程中,经常会出现需要运算的数据超过系统内置的整型范围的情况,在这种时候我们就需要用到高精度运算算法,我将分几篇文章来解释,如何实现高精度运算,并且我将会将高精度运算封装为一个命名为BigInt的高精度整数类,方便未来的使用。

在本篇中,主要实现的是高精度整数的存储、输入与输出。

在给出具体的实现之前,我先介绍一点预备知识,关于C++标准库vector
vector这个词在上一篇文章中提及过,vector是C++提供的一种顺序容器,而对于vector这种容器来说,其特点就是支持快速的随机访问(想一想数组通过下标值访问的方式),作为一种可变长的容器,我们可以把它当作一种“高端的数组”,用vector来存储高精度整数的好处在于可以解决由大整型数组来存数高精度整数时所造成的空间浪费问题。
我们对于高精度整数的存储方式是按位存储,为了避免运算的时候对齐各个位时产生麻烦,所以我们从个位开始存储,也就是说,在vector容器中存储的数字顺序,与你实际看到的数字顺序是正好相反的。
下面就给出具体的实现方法,我在关键的位置都有详尽的注释来说明:

说点什么

您将是第一位评论人!

  Subscribe  
提醒