如何在LabVIEW中实现十六进制和ASCII之间的转换?

更新 Nov 11, 2020

环境

软件

  • LabVIEW

我正在使用LabVIEW与一台仪器进行通讯,它以十六进制的形式返回信息。例如,它不会返回字母"L”,而是返回它对应的十六进制表示"4C”。在LabVIEW中,我该如何编程实现将这个十六进制表示转换为其对应的ASCII表示?如果需要以十六进制等价的形式向仪器发送命令,该如何实现?

从十六进制转换为ASCII

为了将一个十六进制的字符串转化为ASCII字符串,您必须首先使用扫描值函数(Scan Value Function)将十六进制字符转化为其对应的十进制表示,您可以在编程»字符串»数值/字符串转换函数选板下面找到这个函数。然后再使用强制类型转换来将该十进制表示转换为它对应的ASCII字符串,您可以在数学»数值»数据操作函数选板下面找到这个函数。

从ASCII转换为十六进制

要将ASCII字符串转换为十六进制字符串,必须首先使用强制类型转换函数将ASCII字符串转换为其十进制表示,该函数位于数学»数值»数据操作下的函数选板中。然后,您可以使用数值至十六进制字符串转换函数将十进制表示转换为十六进制字符串,该函数位于编程»字符串»数值/字符串转换选板中。

Additional Information

有一些情况下十六进制字符串输入格式为FF而不是0xFF。 0x是用于指示数字基于十六进制而非基于十进制的约定。标准的十六进制字符串不带有此指示符,必须在值转换之前将其删除。接下来的转换过程和上述十六进制数字符串至数值转换过程相同。如果您有具有0xFF格式的字符串,则可以在将字符串传递给扫描值VI之前使用搜索字符为x的搜索替换字符串VI。