ASCII是American Standard Code for Information Interchange的缩写,ASCII码用来制定计算机中每个符号对应的代码。每个ASCII码以1个字节的形式存储,从0~127代表不同的常用符号,如大写字母A的ASCII码是65,小写a的ASCII码则是97。
ASCII码转换指令是将标准字符ASCII编码与十六进制数值、整数、双整数和实数之间进行转换。可进行转换的ASCII码为30~39和41~46,对应的十六进制数为0~9和A~F。
1.整数、双整数及实数转换为ASCII码指令
(1)整数转换为ASCII码(integer to ASCII)指令ITA的功能是将一个整数字IN转换成一个ASCII码字符串,转换结果放在OUT指定的连续8个字节中。格式FMT指定小数点右侧的转换精度和小数点是使用逗号还是点号。
(2)双整数转换为ASCII码(doub1e integer to ASCII)指令DTA的功能是把一个双整数IN转换成一个ASCII码字符串,转换结果放在OUT、指定的连续12个字节中。格式FMT指定小数点右侧的转换精度和小数点是使用逗号还是点号。
(3)实数转换为ASCII码(rea1 to ASCII)指令RTA的功能是把一个实数IN转换成一个ASCII码字符串,转换结果放在OUI、开始的3~15个字节中。格式FMT指定小数点右侧的转换精度和小数点是使用逗号还是点号。
FMT占用一个字节,对于ITA和DTA指令,高4位必须是0;对于RTA指令高4位则指定OUT的大小,范围是3~15。对于低4位,当用abbb表示时,a位指定整数和小数之间的分隔符:a=1,用逗号分隔;a=0,用小数点分隔。小数点右侧的位数由bbb指定,bbb的有效范围是0~5。Bbb=0表示显示的数值无小数点,bbb大于5则为非法格式。
整数、双整数和实数转换为ASCII码指令格式及操作数如表6-13所示。
表6-13 整数、双整数和实数转换为ASCII码指令格式及操作数
如图6-23所示的为整数和实数转换为ASCII码指令的例子。
图6-23 转换指令应用举例
当程序中格式FMT等于1 6#0B,即2#00001011时,a=1,bbb=011,它表示用逗号分隔,保留3位小数。执行如图6-23所示的程序,经ITA指令后,将位于VW2中的整数值转换为VB10开始的8个ASCII码字符,结果如下:
其中,16#20表示空格“SP”;16#3 1表示数字“1”;16#2 C表示逗号“,”。
格式FMT等于16#A3,它表示输出OUT的大小为10个字节;a=0,bbb=011,则用小数点分隔,保留3位小数。在执行图6-23所示的程序,经RTA指令后,将位于VD30中实数值转换为10个ASCII字符,结果如下:
其中,16#2 E表示小数点“.”。
2.ASCII码与十六进制数的转换指令
(1)十六进制数转换为ASCII码(H EX to ASCII)指令HTA的功能是把从输入字节IN开始的长度为LEN的十六进制数转换成ASCII码,并将结果送到从OUT开始的字节输出。(www.xing528.com)
(2)ASCII码转换为十六进制数(ASCII to H EX)指令ATH的功能是把从输入字节IN开始的长度为LEN的ASCII码转换成十六进制数,并将结果送到从OUT开始的字节输出。
ASCII字符串的最大长度LEN为255字符。ASCII码与十六进制数之间的转换指令格式和操作数如表6-14所示。
表6-14 ASCII码与十六进制数转换指令的格式和操作数
图6-24 ATH指令程序梯形图
如图6-24所示为ASCII码转换成十六进制数的例子。
语句表如下。
LD I1..0//使能输入端
ATH VB1 0,VB20,3
程序执行后,结果如下:
它将VB10~VB12中存放的3个ASCII码33、45和41转换成从VB20开始的十六进制数3 E和Ax,“x”表示VB2 1.的“半字节”,即低4位的值未改变。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。