2.3 具体设计
(1)2 个长整数的输入
接着采用头插法的方式,当输入一个 4 个数字的整数时,就产生一个新的节点,它
的值为输入的整数值,建立起它的左右指针,并用头节点指向它;为了判断一个长整数
是否输入结束,定义一个结束标志,当输入正数时就继续,当输入负数时,就结束一个
长整数的输入;同时用一个函数得到长整数的尾节点和段数,段数在比较 2 个数的大小
有用。
(2)2 个长整数的乘法
先定义一个部分加法的函数,就是 2 个正的长整数的加法的运算;它从 2 个长整
数的尾部开始,同时相加,接着再向左移一段,又同时相加;当 2 个数据的某一段同时
存在时,就相加;当一个数据已经所有被相加后,此外一个数据的剩下的段就要所有复
制到和中;在实行加法的时候,设立一个进位标志位,目的是为了使结果对的;当一
段的数据相加产生进位时,那么进位标志位为 1;下一次一段的数据相加就要加上这个
进位标志位;并且假如 2 个长整数的所有的段的数据都相加完了,还要判断是否产生了
进位标志位,假如有的话,就要新建一个节点,它的值就是 1;2 个正的长整数的求和
就完毕了。
再定义一个部分乘法的函数,就是 1 个正的长整数乘于一个 4 位整数,并向左位移
特定的段数的运算;其实开始实现向左位移的运算,只需要建立新的节点,节点的数目
为需要左移段数,并将这些节点的值设立为 0;接着实现一个长整数乘于一个 4 位整数
的运算,采用每一段都和这个 4 位整数的相乘的方法,当积超过 10000 时,那么多于高
4 位全为进位,参与下一次相乘时要加上它;低 4 位就是要新建的节点的值;和加法同
样,当这个正的长整数的每一段都和这个 4 位整数相乘后,但还存在进位时,就要新建
一个节点,它的值就是进位值;现在 1 个正的长整数乘于一个 4 位整数,并向左位移特
定的段数的运算就完毕了;
再实现 2 个正的长整数的乘法的运算,采用第一个长整数作为一个整体乘于第二个
长整数的每一段,并向左位移的方法;例如当采用第一个长整数作为一个整体乘于第二
个长整数的最后一段,就不用向左位移;但是第一个长整数作为一个整体乘于第二个