为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

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

三叶资源网 2019-03-16 12:38:38 易语言例程 2321 ℃ 2 评论
.版本 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
.参数 信息, 文本型

信息框 (“错误!” + #换行符 + 信息, #错误图标, “温馨提示”, 取窗口句柄 ())

@1185384801

文件下载

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有2位网友发表了看法:

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
python爬虫图文微博易语言例程access数据库查询模仿精易的窗口探测水印自动下载易语言视频教程检测OD模块组合框拼接端口检测黑月界面类3.8易语言客户端go语言python对比识别算法淘口令解析keepEdge浏览器文本操作工具箱选择夹图片组
最新评论