大整数,又称为高精度整数,其含义就是用基本数据类型无法存储其精度的整数。
(不严谨地说就是位数很多很多的数)
大整数的存储
用整型数组存储每一位数,如将整数1987存储到数组中,则有a[0]=7,a[1]=8,a[2]=9,a[3]=1。即整数的高位存储在数组的高位,整数的低位存储在数组的低位。因为在运算的时候,都是从低位到高位进行枚举,这样存储符合习惯。在用字符串读入的时候,需要另存在另一个数组,并反转一下。
为了方便,定义一个结构体来存储数组和长度。还是为了方便,会在结构体定义一个“构造函数”来初始化。
这里稍微回顾一下构造函数——
构造函数就是用来初始化结构体的一种函数,它直接定义在结构体中。它不需要写返回类型,且函数名和结构体名相同。通常一个普通定义的结构体,其内部会生成一个默认的构造函数,所以才可以直接定义内部定量而不初始化。如果重新定义了构造函数,默认函数被覆盖,则不能不经初始化就定义结构体变量。为了两者兼得,可以自定义构造函数的同时,手动加上默认函数。
struct node
{
int id;
char gender;
int age;
//默认函数,用以不初始化就定义结构体变量
node(){}
//带参数gender的函数
node(char _gender)
{
gender = _gender;
}
//三全部初始化的函数
node(int _id,int _age,char _gender)
{
id = _id;
age = _age;
gender = _gender;
}
};
//使用
node no;
node no = node('f');
node no = node(123,99,'f');
好了回到正事。大整数的结构体长这样↓