在LabVIEW中將十六進制轉換為十進製或ASCII

更新 Nov 12, 2020

環境

軟體

  • LabVIEW

  • 在LabVIEW中,如何將十六進制值轉換為十進制值?當前,我正在嘗試使用“掃描值功能”,但不確定需要連接什麼。
  • 我正在與一種以十六進制值形式發送回信息的儀器進行通信。例如,不是發送字母L,而是發送回其相應的十六進製表示形式4C。如何在LabVIEW中以編程方式將此十六進製表示形式轉換為其相應的ASCII表示形式?如果我需要將信息以十六進制形式發送回儀器該怎麼辦?

將十六進制轉換為十進制

  1. 要將十六進製字符串轉換為其十進製表示形式,請使用“ 掃描值功能” 。該函數位於“函數”選項板中的“編程»字符串»字符串/數字轉換下
  2. 右鍵單擊該VI的字符串輸入端子,然後選擇創建»控件。這將生成一個字符串常量。
  3. 右鍵單擊該VI的格式字符串輸入端子,然後選擇創建»常量。要指定十六進制格式,請在此常數中輸入%x。
  4. 右鍵單擊該VI的默認(0dbl)輸入端子,然後選擇創建»常量。將此常量的表示形式更改為Integer。為此,右鍵單擊常量,然後選擇製圖表達。然後選擇最適合您所需值範圍的整數。 數值數據類型表中概述了每種數據類型的值範圍。
  5. 右鍵單擊該VI的輸出端子,然後選擇創建»指示器
  6. 使用這些步驟的最終結果示例如下所示:

將十六進制轉換為ASCII

  1. 要將十六進製字符串轉換為ASCII字符串,必須首先使用“掃描值”功能將十六進製字符串轉換為其十進製表示形式。首先完成上述“將十六進制轉換為十進制”小節中的步驟1-5。
  2. 然後,您可以使用類型轉換函數將十進製表示形式轉換為等效的ASCII字符串,該類型轉換函數位於“函數”選項板中的“數學”»“數字”»“數據操作”下
  3. 將連接到十進制指示器的電線連接到x輸入端子。
  4. 右鍵單擊Type Cast Function的*(type *)&x輸出端子,然後選擇Create »Indicator。
  5. 使用這些步驟的最終結果示例如下所示:

轉換為ASCII十六進制

  1. 要將ASCII字符串轉換為十六進製表示,請使用Number to Hexadecimal String Function 。該函數位於“函數”選項板中的“編程»字符串»字符串/數字轉換下
  2. 右鍵單擊該VI終端的十六進制整數字符串輸出,然後選擇創建»指示器。
  3. 類型轉換功能放在程序框圖上。該VI可在函數選板的數學»數值»數據操作下找到
  4. 將數值0的數值常量連接到Type Cast Function的type端子中。
  5. 單擊“類型轉換功能”的*(type *)&x輸出端子,並將其連接到“數字轉十六進製字符串函數”的數字輸入端子。
  6. 將字符串常量連接到Type Cast函數的x端子。
  7. 使用這些步驟的最終結果示例如下所示:

    附加信息

    上述VI的十六進製字符串輸入格式為FF而不是0xFF。 0x是約定,用於指示數字是基於十六進製而不是基於十進制。標準的十六進製字符串不帶有此指示符,必須先將其刪除才能轉換值。此行為與編號為VI的十六進製字符串相同,並且是預期的。如使用0xFF格式的字符串,可在將字符串傳遞至“掃描值” VI之前使用搜索/分割字符串VI,其搜索字符為x。