3个回答
展开全部
我这有,给你吧
.版本 2
.支持库 eCalc
.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
_临时子程序 () ' 在模块初始化代码执行完毕后调用模块测试代码
返回 (0)
.子程序 _临时子程序
' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的参数及返回值类型。
.子程序 模块_进制转换, 文本型, 公开, 可以将从二进制到三十六进制的数值随意进行转换,不可以转换负数以及小数。
.参数 被转换文本, 文本型
.参数 被转换进制, 整数型
.参数 转换的进制, 整数型
.局部变量 欲转换文本, 文本型, , , 输入的文本串
.局部变量 临时文本, 文本型, , , 存放从输入的文本串中取出的一个文本
.局部变量 临时数值, 长整数型
.局部变量 计次变量1, 整数型
.局部变量 计次变量2, 整数型
.局部变量 次方数, 大数, , , 每一位数字对应的10的次方数
.局部变量 转换的进制大数1, 大数, , , 要转换的进制-1
.局部变量 转换的进制大数, 大数, , , 要转换的进制
.局部变量 被转换进制大数, 大数, , , 被转换的进制
.局部变量 临时大数, 大数, , , 将被转换数字转换成的大数
.局部变量 余数大数, 大数, , , 存放求出的余数大数
.局部变量 数值1大数, 大数, , , 只存放1
.局部变量 临时大数1, 大数, , , 将被转换数字的每一位转换成的大数
.如果真 (被转换进制 < 2 或 转换的进制 < 2 或 被转换进制 > 36 或 转换的进制 > 36) ' 判断两个“进制系数”是否正确
返回 (“参数错误-进制只能在2-36之间”)
.如果真结束
被转换文本 = 到大写 (到半角 (被转换文本)) ' 规范参数
.变量循环首 (1, 取文本长度 (被转换文本), 1, 计次变量1) ' 判断输入的数字文本是否有效
临时文本 = 取文本中间 (被转换文本, 计次变量1, 1)
.如果真 (寻找文本 (取文本左边 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 被转换进制), 临时文本, , 假) = -1)
临时文本 = “参数错误-” + 被转换文本 + “不是一个有效的” + 取文本左边 (数值到金额 (被转换进制, 真), 取文本长度 (数值到金额 (被转换进制, 真)) - 4) + “进制数!”
跳出循环 ()
.如果真结束
' 全部查找完毕
.如果真 (计次变量1 = 取文本长度 (被转换文本))
临时文本 = “”
.如果真结束
.变量循环尾 ()
' 如果临时文本不为空,说明此数字文本无效!
.如果真 (临时文本 ≠ “”)
返回 (临时文本)
.如果真结束
' 以上为数据正确性校验处理代码
.如果真 (被转换进制 = 转换的进制) ' 相同时,不用进行转换
返回 (被转换文本)
.如果真结束
.变量循环首 (1, 取文本长度 (被转换文本), 1, 计次变量1) ' 先将要转换的数字放入大数中
次方数.导入数字 (1) ' 数值1不能直接和大数类型计算,所以先放入一个大数中
被转换进制大数.导入数字 (被转换进制)
.计次循环首 (取文本长度 (被转换文本) - 计次变量1, 计次变量2) ' 求次方
次方数 = 次方数.乘 (被转换进制大数)
.计次循环尾 ()
临时大数1.导入数字 (寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (被转换文本, 计次变量1, 1), , 真) - 1)
临时大数1 = 临时大数1.乘 (次方数)
临时大数 = 临时大数1.加 (临时大数) ' 临时大数即为最后转换成的大数
.变量循环尾 ()
转换的进制大数1.导入数字 (转换的进制 - 1)
转换的进制大数.导入数字 (转换的进制)
数值1大数.导入数字 (1) ' 数值1不能直接和大数类型计算,所以先放入一个大数中
.判断循环首 (临时大数.大于 (转换的进制大数1) = 真) ' 开始进制转换,除进制数取余数
余数大数 = 临时大数.求余 (转换的进制大数) ' 求出的余数
临时大数1 = 余数大数.加 (数值1大数) ' 求出的余数+1
临时数值 = 到数值 (临时大数1.导出文本 ()) ' 最后的余数
欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 临时数值, 1) + 欲转换文本 ' 找出每一个余数对应的数字
临时大数 = 临时大数.除 (转换的进制大数, 10) ' 取出剩余的数字
临时大数 = 临时大数.取整数 ()
.判断循环尾 ()
临时数值 = 临时大数.导出整数 () ' 最后剩下的余数
欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 临时数值 + 1, 1) + 欲转换文本 ' 整数转换结束
返回 (欲转换文本)
新建一个易模块程序,把上面的代码复制进去,编译了就可以了。
.版本 2
.支持库 eCalc
.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
_临时子程序 () ' 在模块初始化代码执行完毕后调用模块测试代码
返回 (0)
.子程序 _临时子程序
' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的参数及返回值类型。
.子程序 模块_进制转换, 文本型, 公开, 可以将从二进制到三十六进制的数值随意进行转换,不可以转换负数以及小数。
.参数 被转换文本, 文本型
.参数 被转换进制, 整数型
.参数 转换的进制, 整数型
.局部变量 欲转换文本, 文本型, , , 输入的文本串
.局部变量 临时文本, 文本型, , , 存放从输入的文本串中取出的一个文本
.局部变量 临时数值, 长整数型
.局部变量 计次变量1, 整数型
.局部变量 计次变量2, 整数型
.局部变量 次方数, 大数, , , 每一位数字对应的10的次方数
.局部变量 转换的进制大数1, 大数, , , 要转换的进制-1
.局部变量 转换的进制大数, 大数, , , 要转换的进制
.局部变量 被转换进制大数, 大数, , , 被转换的进制
.局部变量 临时大数, 大数, , , 将被转换数字转换成的大数
.局部变量 余数大数, 大数, , , 存放求出的余数大数
.局部变量 数值1大数, 大数, , , 只存放1
.局部变量 临时大数1, 大数, , , 将被转换数字的每一位转换成的大数
.如果真 (被转换进制 < 2 或 转换的进制 < 2 或 被转换进制 > 36 或 转换的进制 > 36) ' 判断两个“进制系数”是否正确
返回 (“参数错误-进制只能在2-36之间”)
.如果真结束
被转换文本 = 到大写 (到半角 (被转换文本)) ' 规范参数
.变量循环首 (1, 取文本长度 (被转换文本), 1, 计次变量1) ' 判断输入的数字文本是否有效
临时文本 = 取文本中间 (被转换文本, 计次变量1, 1)
.如果真 (寻找文本 (取文本左边 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 被转换进制), 临时文本, , 假) = -1)
临时文本 = “参数错误-” + 被转换文本 + “不是一个有效的” + 取文本左边 (数值到金额 (被转换进制, 真), 取文本长度 (数值到金额 (被转换进制, 真)) - 4) + “进制数!”
跳出循环 ()
.如果真结束
' 全部查找完毕
.如果真 (计次变量1 = 取文本长度 (被转换文本))
临时文本 = “”
.如果真结束
.变量循环尾 ()
' 如果临时文本不为空,说明此数字文本无效!
.如果真 (临时文本 ≠ “”)
返回 (临时文本)
.如果真结束
' 以上为数据正确性校验处理代码
.如果真 (被转换进制 = 转换的进制) ' 相同时,不用进行转换
返回 (被转换文本)
.如果真结束
.变量循环首 (1, 取文本长度 (被转换文本), 1, 计次变量1) ' 先将要转换的数字放入大数中
次方数.导入数字 (1) ' 数值1不能直接和大数类型计算,所以先放入一个大数中
被转换进制大数.导入数字 (被转换进制)
.计次循环首 (取文本长度 (被转换文本) - 计次变量1, 计次变量2) ' 求次方
次方数 = 次方数.乘 (被转换进制大数)
.计次循环尾 ()
临时大数1.导入数字 (寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (被转换文本, 计次变量1, 1), , 真) - 1)
临时大数1 = 临时大数1.乘 (次方数)
临时大数 = 临时大数1.加 (临时大数) ' 临时大数即为最后转换成的大数
.变量循环尾 ()
转换的进制大数1.导入数字 (转换的进制 - 1)
转换的进制大数.导入数字 (转换的进制)
数值1大数.导入数字 (1) ' 数值1不能直接和大数类型计算,所以先放入一个大数中
.判断循环首 (临时大数.大于 (转换的进制大数1) = 真) ' 开始进制转换,除进制数取余数
余数大数 = 临时大数.求余 (转换的进制大数) ' 求出的余数
临时大数1 = 余数大数.加 (数值1大数) ' 求出的余数+1
临时数值 = 到数值 (临时大数1.导出文本 ()) ' 最后的余数
欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 临时数值, 1) + 欲转换文本 ' 找出每一个余数对应的数字
临时大数 = 临时大数.除 (转换的进制大数, 10) ' 取出剩余的数字
临时大数 = 临时大数.取整数 ()
.判断循环尾 ()
临时数值 = 临时大数.导出整数 () ' 最后剩下的余数
欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 临时数值 + 1, 1) + 欲转换文本 ' 整数转换结束
返回 (欲转换文本)
新建一个易模块程序,把上面的代码复制进去,编译了就可以了。
展开全部
.版本 2
.子程序 转换_十六到十, 文本型, 公开, 将十六进制转换成十进制(返回十进制文本)
.参数 十六进制文本, 文本型, , 待转换的十六进制文本
.局部变量 中间文本, 文本型
.局部变量 结果, 长整数型
.局部变量 容器, 整数型
.变量循环首 (1, 取文本长度 (十六进制文本), 1, 容器)
中间文本 = 取文本中间 (十六进制文本, 容器, 1)
结果 = (寻找文本 (“0123456789ABCDEF”, 中间文本, , 真) - 1) × 求次方 (16, 取文本长度 (十六进制文本) - 容器) + 结果
.变量循环尾 ()
返回 (到文本 (结果))
.子程序 转换_十六到十, 文本型, 公开, 将十六进制转换成十进制(返回十进制文本)
.参数 十六进制文本, 文本型, , 待转换的十六进制文本
.局部变量 中间文本, 文本型
.局部变量 结果, 长整数型
.局部变量 容器, 整数型
.变量循环首 (1, 取文本长度 (十六进制文本), 1, 容器)
中间文本 = 取文本中间 (十六进制文本, 容器, 1)
结果 = (寻找文本 (“0123456789ABCDEF”, 中间文本, , 真) - 1) × 求次方 (16, 取文本长度 (十六进制文本) - 容器) + 结果
.变量循环尾 ()
返回 (到文本 (结果))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
网上有一个叫超级模块的,那个里面有……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询