1.3 Codesys十六进制数字字符串与字节互转-CODESYS V3-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

HSC6490-cn中国制造,中国芯~
查看: 3325|回复: 0

1.3 Codesys十六进制数字字符串与字节互转

[复制链接]
  • TA的每日心情
    慵懒
    2017-11-9 20:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2023-9-22 22:35:52 | 显示全部楼层 |阅读模式
    1、十六进制数字字符串转换成字节,不包含前缀'16#',例如字符串'EE',转换后得数字16#EE(十进制显示为238),具体功能代码如下:
    1. FUNCTION strHex_To_Byte : BYTE
    2. VAR_INPUT
    3.         InString_Hex : STRING(2);
    4. END_VAR
    5. VAR
    6.         byTemp      : BYTE;
    7.     iIndex      : INT;               
    8.         pbyTemp     : POINTER TO BYTE;
    9. END_VAR
    10. pbyTemp := ADR(InString_Hex);
    11. FOR iIndex := 0 TO 1 BY 1 DO
    12.     //0-9数字
    13.     IF pbyTemp^>=48 AND pbyTemp^<=57 THEN;
    14.        byTemp:=pbyTemp^-48;
    15.         END_IF;
    16.     //大写字母A-E
    17.     IF pbyTemp^>=65 AND pbyTemp^<=70 THEN;
    18.        byTemp:=pbyTemp^-55;
    19.         END_IF;
    20.     //小写字母
    21.     IF pbyTemp^>=97 AND pbyTemp^<=102 THEN;
    22.        byTemp:=pbyTemp^-87;
    23.         END_IF;
    24.         pbyTemp:=pbyTemp+1;
    25.         strHex_To_Byte:=SHL(strHex_To_Byte,4)+byTemp;
    26. END_FOR;
    复制代码
    测试结果如下
    1.3 Codesys十六进制数字字符串与字节互转-1.png


    2、字节转换成十六进制数字字符串,数字16#EE(十进制显示为238)转换后得字符串'EE',具体功能代码如下:
    1. FUNCTION Byte_To_strHex : STRING(2)
    2. VAR_INPUT
    3.         InByte      : BYTE;
    4. END_VAR
    5. VAR
    6.         xFlag       : BOOL;
    7.         byTemp      : BYTE;
    8.     iIndex      : INT;               
    9.         pbyTemp     : POINTER TO BYTE;
    10. END_VAR
    11. pbyTemp := ADR(Byte_To_strHex);
    12. FOR iIndex := 1 TO 0 BY -1 DO
    13.     byTemp := SHR(InByte,4*iIndex) AND 16#0F;
    14.     IF byTemp>0 THEN
    15.           xFlag:=TRUE;       
    16.         END_IF;
    17.         IF xFlag THEN
    18.        IF byTemp <= 9 THEN
    19.           byTemp := byTemp + 48;
    20.        ELSE
    21.           byTemp := byTemp + 55; //大写字母
    22.        END_IF;
    23.        pbyTemp^ := byTemp;
    24.        pbyTemp := pbyTemp +1;       
    25.         END_IF;   
    26. END_FOR;
    27. pbyTemp^:= 0;
    复制代码
    测试结果如下:
    1.3 Codesys十六进制数字字符串与字节互转-2.png


    经过学习,可以很快轻松完成十六进制数字字符串与字,双字数字的互转功能。其他数字字符串互转链接。
    1.1基于Codesys平台的二进制数字字符串与字节互转
    1.2基于Codesys平台的八进制数字字符串与字节互转
    +10
    不赞一个?
    打赏鼓励一下!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|Archiver|手机版|小黑屋|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

    GMT+8, 2026-10-23 00:55 , Processed in 0.132313 second(s), 49 queries .

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

    快速回复 返回顶部 返回列表