HTA:将十六进制数转换为 ASCII 字符串

描述

说明

使用该指令,可以将在输入 IN 中指定的十六进制数转换为 ASCII 字符串。转换结果存储到参数 OUT 指定的地址中。

使用参数 N,可指定待转换十六进制字节的数量。由于 ASCII 字符为 8 位,而十六进制数只有 4 位,所以输出值长度为输入值长度的两倍。在保持原始顺序的情况下,将十六进制数的每个半位元组转换为一个字符。

可最多有 65635 个字符写入 ASCII 字符串。转换结果以数字 0 ~ 9 和大写字母 A ~ F 表示。

该指令不检测任何错误条件。

参数

下表列出了“HTA”指令的参数:

参数 声明 数据类型 存储区 说明
IN Input POINTER* I、Q、M、D 十六进制数的起始地址
N Input WORD I、Q、M、D、L、P 或常量 待转换的十六进制字节数
OUT Output POINTER* D、L 结果的存储地址。
* 指针格式为双字,用于跨区域间接寄存器寻址

示例

只有输入 I 0.0 的信号状态为“1”(激活),才执行该指令。在本示例中,N 输入参数设置为 3,表示要转换三个十六进制字符。将十六进制字节存储在以 IN 指针指定的地址为起点的数据块 1 中:DB1.DBX10.0。字符串将输出到由 OUT 指针指定的地址处:从 DB2.DBX0.0 开始(数据块 2)。

下表列出了十六进制数转换为 ASCII 字符串的示例:

IN N OUT BR 状态
W#16#0123 2 '0123' 1
16#123AF01023 4 '123AF010' 0

下表显示了 ASCII 字符及其相对应的十六进制值:

十六进制数 ASCII 编码的十六进制值 ASCII 字符
0 30 "0"
1 31 "1"
2 32 "2"
3 33 "3"
4 34 "4"
5 35 "5"
6 36 "6"
7 37 "7"
8 38 "8"
9 39 "9"
A 41 "A"
B 42 "B"
C 43 "C"
D 44 "D"
E 45 "E"
F 46 "F"

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分