.版本 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
.参数 信息, 文本型
信息框 (“错误!” + #换行符 + 信息, #错误图标, “温馨提示”, 取窗口句柄 ())
62进制易语言
进制转换源码