效率极低,只是可以运算大数
理论只要 位数 少于 易语言整数的最大限制 的 数字 都可以运算
.版本 2
.支持库 spec
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
调试输出 (加法 (“146”, “54”))
调试输出 (加法 (“1145141919810”, “31415926535897932384626433832795028”))
返回 (0) ' 可以根据您的需要返回任意数值
.子程序 加法, 文本型
.参数 a, 文本型
.参数 b, 文本型
.局部变量 长数, 文本型
.局部变量 短数, 文本型
.局部变量 i, 整数型
.局部变量 临时数字, 整数型
.局部变量 位置, 整数型
.局部变量 位置2, 整数型
.局部变量 进位, 整数型
.局部变量 返回, 文本型
.局部变量 c, 文本型
长数 = a
短数 = b
.如果真 (取文本长度 (a) < 取文本长度 (b))
交换变量 (长数, 短数)
.如果真结束
' 调试输出 (长数, 短数)
.计次循环首 (取文本长度 (短数), i)
位置 = 取文本长度 (短数) - i + 1
位置2 = 取文本长度 (长数) - i + 1
临时数字 = 到整数 (取文本中间 (长数, 位置2, 1)) + 到整数 (取文本中间 (短数, 位置, 1)) + 进位
' 调试输出 (临时数字, 取文本中间 (长数, 位置2, 1), 取文本中间 (短数, 位置, 1), 进位)
进位 = 0
.判断循环首 (临时数字 ≥ 10)
临时数字 = 临时数字 - 10
进位 = 进位 + 1
.判断循环尾 ()
返回 = 到文本 (临时数字) + 返回
.计次循环尾 ()
c = 取文本左边 (长数, 取文本长度 (长数) - 取文本长度 (短数))
.如果真 (进位 = 1)
c = 递增 (c)
.如果真结束
返回 (c + 返回)
.子程序 递增, 文本型
.参数 a, 文本型
.局部变量 i, 整数型
.局部变量 位置, 整数型
.局部变量 临时数字, 整数型
.局部变量 返回, 文本型
.计次循环首 (取文本长度 (a) + 1, i)
位置 = 取文本长度 (a) - i + 1
临时数字 = 到整数 (取文本中间 (a, 位置, 1))
临时数字 = 临时数字 + 1
.判断开始 (临时数字 ≥ 10)
临时数字 = 临时数字 - 10
返回 = “0” + 返回
.默认
返回 = 到文本 (临时数字) + 返回
跳出循环 ()
.判断结束
.计次循环尾 ()
返回 (取文本左边 (a, 取文本长度 (a) - 取文本长度 (返回)) + 返回)