任意进制转换(2-62)易语言源码

.版本 2 .子程序 __启动窗口_创建完毕 .局部变量 时间, 整数型 .局部变量 结果, 文本型 时间 = 取启动时间 () 结果 = 进制转换 (“ffffff”, 16, 10) 输出调试文本 (取启动时间 () - 时间) 信息框 (“把ffffff转换为10进制结果:” + 结果, #信息图标, “温馨提示”, ) 结束 () .子程序 进制转换, 文本型, 公开, 纯算数方法,如果部分使用汇编会更快 .参数 数字, 文本型 .参数 当前进制, 长整数型, , 禁止为1,禁止超过62 .参数 转换进制, 长整数型, , 禁止为1,禁止超过62 .局部变量 进制数据, 长整数型, , "0" .局部变量 内部结构, 长整数型 .局部变量 结果, 文本型 .局部变量 X, 整数型 .局部变量 Y, 整数型 .局部变量 跳出, 逻辑型 .如果真 (当前进制 < 2 或 转换进制 < 2) Error (“提供进制小于2”) 返回 (“”) .如果真结束 .如果真 (当前进制 > 62 或 转换进制 > 62) Error (“提供进制大于62”) 返回 (“”) .如果真结束 .如果真 (当前进制 = 转换进制) 返回 (数字) .如果真结束 内部_分割全部文本 (数字, 进制数据) ' 分割 .计次循环首 (取数组成员数 (进制数据), X) .如果真 (X + 1 > 取数组成员数 (进制数据)) 跳出循环 () .如果真结束 进制数据 [X + 1] = 进制数据 [X + 1] + 进制数据 [X] × 当前进制 ' 一点一点的乘 ' 例如1a(16进制),就分割为1和a,然后1*16,a转为整数与1*16相加(数学原理,这是折算为10进制)接着规递就可以了 .计次循环尾 () 内部结构 = 进制数据 [取数组成员数 (进制数据)] .如果真 (转换进制 = 10) ' 10进制啦 返回 (到文本 (内部结构)) .如果真结束 清除数组 (进制数据) 加入成员 (进制数据, 内部结构) ' 重新生成结构 .如果真 (转换进制 > 内部结构) 返回 (内部_折算进制 (内部结构)) ' 本来就不超过进制就直接返回 .如果真结束 .判断循环首 (1 = 到整数 (1)) ' 开始死循环 加入成员 (进制数据, 0) ' 加入一个数据 X = 取数组成员数 (进制数据) ' X最大 跳出 = 真 ' 这里是判断是否已经全部处理完成的,如果全部处理完就会直接跳出。不把“跳出 = 假”这个运行 .判断循环首 (1 = 到整数 (1)) ' 开始死循环 .如果真 (转换进制 > 进制数据 [X - 1]) ' 已经转换完毕 跳出循环 () .如果真结束 跳出 = 假 进制数据 [X] = 进制数据 [X] + 到长整数 (进制数据 [X - 1] ÷ 转换进制) ' 这是一个数学思想,超过进制就向前进位 进制数据 [X - 1] = 进制数据 [X - 1] % 转换进制 .判断循环尾 () .如果真 (跳出) 跳出循环 () .如果真结束 .判断循环尾 () .变量循环首 (取数组成员数 (进制数据), 1, -1, X) 结果 = 结果 + 内部_折算进制 (进制数据 [X]) ' 把数组折算 .变量循环尾 () 返回 (取文本右边 (结果, 取文本长度 (结果) - 1)) ' 去出前面多余的0 .子程序 内部_分割全部文本 .参数 文本, 文本型 .参数 进制数据, 长整数型, 数组 .局部变量 X, 整数型 清除数组 (进制数据) .计次循环首 (取文本长度 (文本), X) 加入成员 (进制数据, 内部_反折算 (取文本中间 (文本, X, 1))) ' 全部分割出来就OK .计次循环尾 () .子程序 内部_折算进制, 文本型, , 最高支持62进制 .参数 整数, 长整数型 .局部变量 基本内容, 文本型 基本内容 = “0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ” ' 一样的,取出位置的文本 返回 (取文本中间 (基本内容, 整数 + 1, 1)) .子程序 内部_反折算, 整数型, , 最高支持62进制 .参数 文本, 文本型 .局部变量 基本内容, 文本型 基本内容 = “0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ” ' 通过文本搜索来确定位置,位置减一就是折算的数据,比如a的位置是11,则a=10(11-1) 返回 (寻找文本 (基本内容, 文本, , 假) - 1) .子程序 Error .参数 信息, 文本型 信息框 (“错误!” + #换行符 + 信息, #错误图标, “温馨提示”, 取窗口句柄 ())
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

任意进制转换(2-62)易语言源码》有0个想法

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注