易语言 我要找十六转十进制的模块(是模块~!!)
答案:1 悬赏:60 手机版
解决时间 2021-04-01 16:04
- 提问者网友:箛茗
- 2021-04-01 05:17
易语言 我要找十六转十进制的模块(是模块~!!)
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-04-01 06:01
我这有,给你吧
.版本 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) + 欲转换文本 ' 整数转换结束
返回 (欲转换文本)
新建一个易模块程序,把上面的代码复制进去,编译了就可以了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯