1.3 Codesys十六进制数字字符串与字节互转
1、十六进制数字字符串转换成字节,不包含前缀'16#',例如字符串'EE',转换后得数字16#EE(十进制显示为238),具体功能代码如下:
FUNCTION strHex_To_Byte : BYTE
VAR_INPUTInString_Hex : STRING(2);
END_VAR
VARbyTemp : BYTE;iIndex : INT; pbyTemp : POINTER TO BYTE;
END_VARpbyTemp := ADR(InString_Hex);
FOR iIndex := 0 TO 1 BY 1 DO//0-9数字IF pbyTemp^>=48 AND pbyTemp^<=57 THEN;byTemp:=pbyTemp^-48;END_IF;//大写字母A-EIF pbyTemp^>=65 AND pbyTemp^<=70 THEN;byTemp:=pbyTemp^-55;END_IF;//小写字母IF pbyTemp^>=97 AND pbyTemp^<=102 THEN;byTemp:=pbyTemp^-87;END_IF; pbyTemp:=pbyTemp+1;strHex_To_Byte:=SHL(strHex_To_Byte,4)+byTemp;
END_FOR;
测试结果如下
2、字节转换成十六进制数字字符串,数字16#EE(十进制显示为238)转换后得字符串'EE',具体功能代码如下:
FUNCTION Byte_To_strHex : STRING(2)
VAR_INPUTInByte : BYTE;
END_VAR
VARxFlag : BOOL;byTemp : BYTE;iIndex : INT; pbyTemp : POINTER TO BYTE;
END_VARpbyTemp := ADR(Byte_To_strHex);
FOR iIndex := 1 TO 0 BY -1 DObyTemp := SHR(InByte,4*iIndex) AND 16#0F;IF byTemp>0 THENxFlag:=TRUE; END_IF;IF xFlag THENIF byTemp <= 9 THEN byTemp := byTemp + 48; ELSE byTemp := byTemp + 55; //大写字母END_IF;pbyTemp^ := byTemp;pbyTemp := pbyTemp +1; END_IF;
END_FOR;
pbyTemp^:= 0;
测试结果如下:
经过学习,可以很快轻松完成十六进制数字字符串与字,双字数字的互转功能。其他数字字符串互转链接。
1.1基于Codesys平台的二进制数字字符串与字节互转
1.2基于Codesys平台的八进制数字字符串与字节互转
1.3 Codesys十六进制数字字符串与字节互转相关推荐
- C将十六进制数字字符串转成数字
1.将十六进制数字字符串转成数字 long lTemp = strtol("0xa10b", NULL, 16); 这样的话,就将0xa10b这个十六制形式的字符串转为 ...
- Go语言之父带你重新认识字符串、字节、rune和字符
以下文章翻译自罗伯·派克发表在Go Blog的文章,文章中为读者详述了Go语言中字符串与我们经常提起的字节.字符还有rune的关系和相互之间的不同.正如派克在文中所说 字符串这个话题对于一篇博客文章来 ...
- python字符串和字节串有什么区别_对于Python中的字节串bytes和字符串以及转义字符的新的认识...
事情的起因是之前同学叫我帮他用Python修改一个压缩包的二进制内容用来做fuzz,根据他的要求,把压缩包test.rar以十六进制的方式打开,每次修改其中一个十六进制字符串并保存为一个新的rar用来 ...
- c语言占八个字节的浮点数是,『double转八字节十六进制』double占8字节 一个数字占1字节 为什么能精确16位 我觉得只有8位,,,...
C# 的double类型的10进制 转化成 字符串的 2进制和16进制的问题 先转换成字组,然后再转成2进制和16进制格字符串XSf道家风水传承网double x = 3.14d;XSf道家风水传承网 ...
- c语言十六进制字符串转整数,C语言-提取字符串中的十六进制数字并转换为一个十进制整数输出...
问题描述:提取字符串中的十六进制数字并转换为一个十进制整数输出 源代码: /*十六进制转换成十进制*/ #include int main(void) { int i,k; char hexad[80 ...
- scala 字符串转换数组_如何在Scala中将十六进制字符串转换为字节数组?
scala 字符串转换数组 Hex String in Scala denotes value in hexadecimal number system i.e. base 16 number sys ...
- 十六进制字符串转换为字节数组
第一步.将十六进制的字符串除以二,算出字节数组的长度: 第二步.根据字节数组的长度,创建字节数组: 第三步.将字符串转换为字符数组: 第四步.将字符转换为字节: 第五步.十六进制的字节分为高四位与低四 ...
- [C++11]_[初级]_[十六进制字符串转换为字节数组]
场景 在开发使用加密算法md5,sha256等的功能时, 会生成基于十六进制的字符串密钥. 这时候在使用这些密钥进行解密或加密的时候,第三方库都需要传入一个字节数组usigned char*格式的数组 ...
- 十六进制字符串与字节数组转换工具
1.十六进制字符串转字节数组 public static byte[] hexToBytes(String hex) {hex = hex.length() % 2 != 0 ? "0&qu ...
最新文章
- 超级的全中文语音数据集合
- python项目开发案例集锦 豆瓣-Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评...
- 1.3.2 中断和异常(内中断和外中断、中断处理过程)
- c++ 优先队列_C/C++数据结构:队列结构最全解析!带你零基础入门队列结构
- commons-fileupload实现文件上传下载
- uni-app 微信小程序授权登录
- 文本处理算法_关键词提取和文本摘要算法TextRank详解及实战
- BZOJ5074 小B的数字
- Java编程:弗洛伊德算法(无向图所有顶点最小路径)
- 100个Java实战项目视频+代码+笔记
- Java常用类(四):IOUtils类
- 8086汇编语言(一) 汇编语言源程序
- 海信电视 android,海信聚好看app下载 海信聚好看(电视微助手) for Android V5.7.0.9 安卓手机版 下载-脚本之家...
- 基于微信网页版二维码扫码支付
- iOS小技能: UIKit
- 因创业的辞职报告怎么写[范文7篇]
- 创新工场王嘉平开讲:low-level的计算机视觉
- 单片机AD转换程序 TLC2543
- IDA的详细使用指南以及核心功能讲解
- CPLEX中导入excel数据