LabVIEW中十六进制格式字符串转ASCII方法咨询
在LabVIEW中正确转换十六进制字符串为ASCII的方法
嘿,我之前也踩过这个坑!你用错函数啦——十六进制转数值是把整个十六进制串转成单个数值,而不是逐个字节解析成ASCII字符。咱们换两个函数就能轻松搞定:
具体操作步骤
- 首先找到十六进制字符串至字节数组函数(在「字符串」选板下的「字符串/数值转换」子选板里),把你的十六进制字符串(比如
09124E4F21CD0024FFFFFFFFFFFFFFFF)连到它的输入端。这个函数会自动把每两个十六进制字符转换成一个8位字节(U8类型)。 - 接着用字节数组至字符串函数(同样在「字符串」选板里),把字节数组的输出端连到这个函数的输入。这一步就会把每个字节对应的ASCII字符拼接成完整字符串。
关于你得到的结果
你看到的NO!Í和大量不可读符号是完全正常的:
4E对应ASCII的N,4F对应O,21对应!,CD对应扩展ASCII里的Í- 那些
FFFFFFFFFFFFFFFF对应的字节是255(FF),在ASCII体系里属于不可读的控制/扩展字符,本来就无法显示成常规文字,这不是转换错误哦。
(可选)提取可打印ASCII字符
如果你只想保留能正常显示的ASCII内容,可以加个过滤逻辑:遍历字节数组,只保留数值在32(空格)到126(~)之间的字节,再转成字符串。这样就能得到干净的可打印字符啦。
内容的提问来源于stack exchange,提问作者user6656104




