我要如何在LabVIEW中轉換十六進制與ASCII的字元?

更新 Jan 9, 2020

產品資訊

Software

  • LabVIEW Full
  • LabVIEW Base

問題敘述

我使用的儀器是用十六進制(Hexadecimal)的方式來做傳輸。例如,如果儀器要傳輸"L"這個字元給我的話,它會用"4C"來表示。我要如何在LabVIEW裡把十六進制的字元表示轉換成ASCII表示的字元? 如果我要送十六進制的資訊回去給儀器的話,我該如何做?
 

解決方案

從十六進制轉換為ASCII

要將十六進制字串轉換為ASCII字串,首先請使用Scan Value Function將十六進制字串轉換為十進制的表示形式,你可以在Functions Palette中的Programming»String»String/Number Conversion找到Scan Value這個VI。然後,您可以使用Type Cast Function將十進制表示轉換為其等效的ASCII字串,你可以在Functions Palette中的Mathematics»Numeric»Data Manipulation找到Type Cast這個VI。

從ASCII轉換為十六進制

要將ASCII字串轉換為十六進制字串,首先請使用Type Cast Function將ASCII字串轉換為十進制的表示形式,你可以在Functions Palette中的Mathematics»Numeric»Data Manipulation找到Type Cast這個VI。然後,您可以使用Number to Hexadecimal String Function將十進制表示形式轉換為十六進制字串,你可以在Functions Palette中的Programming»String»Number/String Conversion找到Number to Hexadecimal String這個VI。

相關資訊

以下幾個連結中的VI,其十六進制字串輸入格式為FF而不是0xFF。 0x是用於表示基於十六進制的數字而非基於十進制的的數字表示符號。標準的十六進制字串不會帶有此0x的表示符號,因此必須在數值轉換之前將其刪除。這個方法與使用Hexadecimal String to Number VI相同的。舉例來說,如果你有一個0xFF格式的字串,則可以在字串傳遞到Scan Value VI之前使用Search/Split String VI搜尋x這個字元將0x刪除。

本文是否有幫助?

無幫助