受人所托,写了个16进制数据和文本之间的相互转换工具,希望大家有用。
使用说明:
在最上面的编辑框内输入需要转换为16进制的文本,点转换即可。
在中间的编辑框内输入需要转换为文本的16进制数据点“十六进制到文本”按扭即可在最下面的编辑框内显示出已经转换好的文本。
注意:十六进制到文本转换的时候,需要按照16进制数值的格式输入,比如需要转换的十六进制数据为“A1”,不可输入“a1”。16进制数值只有一位的时候,必须在前面加“0”比如“OA”不可输入“A”。另外两个16进制数据之间必须以空格分开,比如“A1 A2”。
作者:回心转意
由于整个程序采用E语言编写,不知道是否需要上传源代码,请斑竹指示
源代码如下
.版本 2
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.局部变量 文本, 文本型
.局部变量 字节集, 字节集
.局部变量 长度, 整数型
.局部变量 字节数组, 字节型, , "0"
.局部变量 计次, 整数型
.局部变量 字节, 字节型
.局部变量 整数数组, 整数型, , "0"
.局部变量 文本数组, 文本型, , "0"
文本 = 编辑框1.内容
字节集 = 到字节集 (文本)
编辑框2.内容 = “”
长度 = 取字节集长度 (字节集)
.计次循环首 (长度, 计次)
字节 = 取字节集数据 (字节集, 1, 计次)
加入成员 (字节数组, 字节)
.计次循环尾 ()
计次 = 1
.计次循环首 (长度, 计次)
加入成员 (整数数组, 到数值 (字节数组 [计次]))
.计次循环尾 ()
计次 = 1
.计次循环首 (长度, 计次)
.如果 (整数数组 [计次] = 0)
加入成员 (文本数组, “00”)
.否则
加入成员 (文本数组, 取十六进制文本 (整数数组 [计次]))
.如果结束
.计次循环尾 ()
计次 = 1
.计次循环首 (长度, 计次)
.如果真 (取文本长度 (文本数组 [计次]) = 1)
文本数组 [计次] = “0” + 文本数组 [计次]
.如果真结束
编辑框2.加入文本 (文本数组 [计次] + “ ”)
' 如果真 (计次 % 16 = 0)
' 编辑框2.加入文本 (#换行符)
.计次循环尾 ()
.子程序 _按钮2_被单击
.局部变量 文本, 文本型
.局部变量 字节集, 字节集
文本 = 编辑框2.内容
字节集 = 文本到字节集 (文本)
编辑框3.内容 = 到文本 (字节集)
.子程序 文本到字节集, 字节集
.参数 文本, 文本型
.局部变量 高位, 文本型
.局部变量 低位, 文本型
.局部变量 高位数据, 整数型
.局部变量 低位数据, 整数型
.局部变量 数值, 整数型
.局部变量 文本数组, 文本型, , "0"
.局部变量 字节集, 字节集
.局部变量 次数, 整数型
.局部变量 计次, 整数型
.局部变量 数值数组, 字节型, , "0"
文本数组 = 分割文本 (文本, “ ”, )
次数 = 取数组成员数 (文本数组)
.计次循环首 (次数, 计次)
高位 = 取文本左边 (文本数组 [计次], 1)
低位 = 取文本右边 (文本数组 [计次], 1)
.判断开始 (高位 = “A”)
高位数据 = 10
.判断 (高位 = “B”)
高位数据 = 11
.判断 (高位 = “C”)
高位数据 = 12
.判断 (高位 = “D”)
高位数据 = 13
.判断 (高位 = “E”)
高位数据 = 14
.判断 (高位 = “F”)
高位数据 = 15
.默认
高位数据 = 到数值 (高位)
.判断结束
.判断开始 (低位 = “A”)
低位数据 = 10
.判断 (低位 = “B”)
低位数据 = 11
.判断 (低位 = “C”)
低位数据 = 12
.判断 (低位 = “D”)
低位数据 = 13
.判断 (低位 = “E”)
低位数据 = 14
.判断 (低位 = “F”)
低位数据 = 15
.默认
低位数据 = 到数值 (低位)
.判断结束
数值 = 高位数据 × 16 + 低位数据
加入成员 (数值数组, 到字节 (数值))
.计次循环尾 ()
字节集 = 到字节集 (数值数组)
返回 (字节集)
.子程序 _按钮3_被单击
载入 (窗口1, , 真)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)