有所为有所不违 发表于 2016-3-8 22:22:29

求易语言文本型转换成10进制源码


求易语言文本型转换成16进制源码,再转换成10进制源码,最好直接转换成10进制!!!!!!!!!!!!!!跪求


怪盗基德 发表于 2016-3-8 22:49:11

额。。。。先是吧文本转到字节集。。。然后 字节集就是10进制。。。

揰掵佲 发表于 2016-3-8 23:31:15

{:4_95:}举个例子,表示模糊中

foyuan 发表于 2016-3-9 19:54:52

.版本 2

.子程序 汇编_十到十六, 文本型, 公开, 将十进制转换成十六进制(返回十六进制文本)
.参数 十进制数, 长整数型, , 待转换的十进制数
.参数 是否不去零, 逻辑型, 可空, 默认为假:去0真:不去0
.局部变量 余数, 文本型, , "0"
.局部变量 十六进制文本, 文本型
.局部变量 计次, 整数型
.局部变量 字母数组, 文本型, , "6"
.局部变量 字节集, 字节集

.如果真 (是否不去零)
    字节集 = 到字节集 (十进制数)
    .计次循环首 ((取字节集长度 (字节集) + 2) \ 3, 计次)
      十六进制文本 = 汇编_到十六进制文本 (字节集 [计次]) + 十六进制文本
    .计次循环尾 ()
    返回 (十六进制文本)
.如果真结束

字母数组 = { “A”, “B”, “C”, “D”, “E”, “F” }
.循环判断首 ()
    .判断开始 (十进制数 % 16 < 10)
      加入成员 (余数, 到文本 (十进制数 % 16))
    .默认
      加入成员 (余数, 字母数组 [十进制数 % 16 - 9])
    .判断结束
    十进制数 = 十进制数 ÷ 16
    .如果真 (十进制数 < 16)
      .判断开始 (十进制数 < 10)
            加入成员 (余数, 到文本 (取整 (十进制数)))
      .默认
            加入成员 (余数, 字母数组 [十进制数 - 9])
      .判断结束
      跳出循环 ()
    .如果真结束

.循环判断尾 (真)
.计次循环首 (取数组成员数 (余数), 计次)
    十六进制文本 = 十六进制文本 + 到文本 (余数 [取数组成员数 (余数) - 计次 + 1])
.计次循环尾 ()
.如果真 (取文本左边 (十六进制文本, 1) = “0”)
    十六进制文本 = 去除首部零 (十六进制文本)
.如果真结束
返回 (十六进制文本)


.子程序 汇编_十六到十, 整数型, 公开
.参数 十六进制文本, 文本型, , 待转换的十六进制文本
.参数 返回结果, 文本型, 参考 可空, 返回文本结果()
.局部变量 中间文本, 文本型
.局部变量 结果, 长整数型
.局部变量 容器1, 整数型

返回结果 = “”
.变量循环首 (1, 取文本长度 (十六进制文本), 1, 容器1)
    中间文本 = 取文本中间 (十六进制文本, 容器1, 1)
    结果 = (寻找文本 (“0123456789ABCDEF”, 中间文本, , 真) - 1) × 求次方 (16, 取文本长度 (十六进制文本) - 容器1) + 结果
.变量循环尾 ()
.如果真 (是否为空 (返回结果) = 假)
    返回结果 = 到文本 (结果)
.如果真结束
返回 (结果)


.子程序 汇编_到十六进制文本, 文本型, 公开, 这个取十六进制文本没有去0
.参数 数值, 整数型, , 只能是255以内的数

' 取出十六进制文本,用易语言的函数会丢掉0,所以重新做了一个
返回 (多项选择 (右移 (数值, 4) + 1, “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, “C”, “D”, “E”, “F”) + 多项选择 (位与 (数值, 15) + 1, “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, “C”, “D”, “E”, “F”))

foyuan 发表于 2016-3-9 19:57:00

.版本 2

.子程序 汇编_转换任意进制, 文本型, 公开, 可以将从二进制到三十六进制的数值随意进行转换(返回转换后的文本)
.参数 被转换文本, 文本型, , 欲被转换的文本(不可以转换负数以及小数)
.参数 被转换进制, 整数型, , 被转换文本的进制(2-36之间)
.参数 转换的进制, 整数型, , 要转换到的进制(2-36之间)
.局部变量 欲转换文本, 文本型
.局部变量 临时文本, 文本型
.局部变量 临时数值, 长整数型
.局部变量 计次变量, 整数型

.如果真 (被转换进制 < 2 或 转换的进制 < 2 或 被转换进制 > 36 或 转换的进制 > 36)' 判断两个“进制系数”是否正确
    输出调试文本 (“参数错误-进制只能在2-36之间”)
    返回 (“”)
.如果真结束
被转换文本 = 到大写 (到半角 (被转换文本))' 规范参数

.计次循环首 (取文本长度 (被转换文本), 计次变量)
    临时文本 = 取文本中间 (被转换文本, 计次变量, 1)
    .如果真 (寻找文本 (取文本左边 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 被转换进制), 临时文本, , 假) = -1)
      临时文本 = “参数错误-” + 被转换文本 + “不是一个有效的” + 取文本左边 (数值到金额 (被转换进制, 真), 取文本长度 (数值到金额 (被转换进制, 真)) - 4) + “进制数!”
      跳出循环 ()
    .如果真结束
    .如果真 (计次变量 = 取文本长度 (被转换文本))
      临时文本 = “”
    .如果真结束

.计次循环尾 ()
.如果真 (临时文本 ≠ “”)
    输出调试文本 (临时文本)
    返回 (“”)
.如果真结束
' 以上为数据处理代码
.如果真 (被转换进制 = 转换的进制)
    返回 (被转换文本)
.如果真结束
.计次循环首 (取文本长度 (被转换文本), 计次变量)' 整数转换开始
    临时数值 = (寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (被转换文本, 计次变量, 1), , 真) - 1) × 求次方 (被转换进制, 取文本长度 (被转换文本) - 计次变量) + 临时数值
.计次循环尾 ()

.判断循环首 (临时数值 > 转换的进制 - 1)
    欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 到数值 (到文本 (临时数值 % 转换的进制)) + 1, 1) + 欲转换文本
    临时数值 = 取整 (临时数值 ÷ 转换的进制)
.判断循环尾 ()

欲转换文本 = 取文本中间 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 临时数值 + 1, 1) + 欲转换文本' 整数转换结束
返回 (欲转换文本)
页: [1]
查看完整版本: 求易语言文本型转换成10进制源码