|
- .版本 2
- .支持库 spec
- .程序集 程序集1, , , 易语言 十六进制与字节集互转源码 相当于php的bin2hex() 与 hex2bin()
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 十六进制, 文本型
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 十六进制 = 字节集到十六进制 (到字节集 (“Hello World!”), 真)
- 调试输出 (十六进制)
- 调试输出 (到文本 (十六进制到字节集 (十六进制)))
- .子程序 十六进制到字节集, 字节集, 公开
- .参数 文本, 文本型
- .局部变量 计数, 整数型
- .局部变量 返回值, 字节集
- .局部变量 计数2, 整数型
- .局部变量 文本长度, 整数型
- 文本长度 = 取文本长度 (文本)
- .如果真 (位与 (文本长度, 1) = 1)
- 输出调试文本 (“十六进制文本转字节集不得为奇数字节。”)
- 返回 ({ })
- .如果真结束
- 返回值 = 取空白字节集 (文本长度 ÷ 2)
- .变量循环首 (1, 文本长度, 2, 计数)
- 计数2 = 计数2 + 1
- 返回值 [计数2] = 二位十六进制转字节 (取文本中间 (文本, 计数, 2))
- .变量循环尾 ()
- 返回 (返回值)
- .子程序 二位十六进制转字节, 字节型, 公开
- .参数 十六进制文本, 文本型
- 十六进制文本 = 到大写 (取文本左边 (十六进制文本, 2))
- 返回 (位或 (左移 (一位十六进制到十进制 (取文本左边 (十六进制文本, 1)), 4), 一位十六进制到十进制 (取文本右边 (十六进制文本, 1))))
- .子程序 一位十六进制到十进制, 字节型, 公开
- .参数 十六进制文本, 文本型
- .局部变量 十六进制文本2, 文本型
- .局部变量 计数, 整数型
- 十六进制文本 = 到大写 (取文本左边 (十六进制文本, 1))
- 十六进制文本2 = “0123456789ABCDEF”
- .计次循环首 (16, 计数)
- .如果真 (取文本中间 (十六进制文本2, 计数, 1) = 十六进制文本)
- 返回 (计数 - 1)
- .如果真结束
- .计次循环尾 ()
- 输出调试文本 (“发现不是十六进制的字符。”)
- 返回 (0)
- .子程序 字节集到十六进制, 文本型, 公开
- .参数 字节集, 字节集
- .参数 大写, 逻辑型, 可空
- .局部变量 字节集长度, 整数型
- .局部变量 返回值, 文本型
- .局部变量 计数, 整数型
- .局部变量 十六进制文本, 文本型
- 字节集长度 = 取字节集长度 (字节集)
- .如果 (大写)
- 十六进制文本 = “0123456789ABCDEF”
- .否则
- 十六进制文本 = “0123456789abcdef”
- .如果结束
- .计次循环首 (字节集长度, 计数)
- 返回值 = 返回值 + 取文本中间 (十六进制文本, 右移 (字节集 [计数], 4) + 1, 1) + 取文本中间 (十六进制文本, 位与 (字节集 [计数], 15) + 1, 1)
- .计次循环尾 ()
- 返回 (返回值)
复制代码
|
|