在北京航空航天大学出版社出版的丁海军老师主编的《程序设计基础(C语言)》第236页,我看到了一个大整数减法的的算法实现,试验了这样一组数据:

as="99999";bs="100004";

结果:

rs=-1&1&5
请按任意键继续. . .

多次调试,我发现了一个问题:

当需要向高位借一时,如果高位为零,那么高位做减一操作,高位存储的ASCII值就变成了255,这样,接下来的运算就向着我不能预知的方向发展了。于是,我在修改了处理错位时的代码:

else  //a

这样程序终于可以正确运行了:

结果:

rs=-5
请按任意键继续. . .