Labview中數值將字符串轉化為數值
目的:字符串轉換為雙精度數。
網(wǎng)友的程序框圖:

分析網(wǎng)友的程序框圖:
網(wǎng)友的目的是字符串轉換為雙精度數,從程序框圖上看,他限定了字符串的格式。字符串由5個(gè)字符組成,其中整數部分2個(gè)字符,小數點(diǎn)1個(gè)字符,小數部分兩個(gè)字符。
網(wǎng)友首先把字符串轉換為U8數組,然后利用索引數組取出各個(gè)位,根據各位、百位、小數點(diǎn)后一位、小數點(diǎn)后兩位,分別乘以10、100、0.1、0.01,然后求和。
框圖中比較難理解的是除以16,求余數的操作,他的目的把ASCII轉換為數字。我們知道ASCII 0X30...0X39分別是0-9的ASCII.除以16的目的是右移4位,這樣余數分別為0-9。
改進(jìn)網(wǎng)友的程序框圖:
網(wǎng)友的程序框圖雖然比較復雜,但是還是有借鑒意義的,這里面實(shí)際上給出了字符串表示的數字轉換為各個(gè)位組成數組的方法,我們可以更為簡(jiǎn)單的方法實(shí)現同樣的功能。以整型數為例。
網(wǎng)友的目的是字符串轉換為雙精度數,從程序框圖上看,他限定了字符串的格式。字符串由5個(gè)字符組成,其中整數部分2個(gè)字符,小數點(diǎn)1個(gè)字符,小數部分兩個(gè)字符。
網(wǎng)友首先把字符串轉換為U8數組,然后利用索引數組取出各個(gè)位,根據各位、百位、小數點(diǎn)后一位、小數點(diǎn)后兩位,分別乘以10、100、0.1、0.01,然后求和。
框圖中比較難理解的是除以16,求余數的操作,他的目的把ASCII轉換為數字。我們知道ASCII 0X30...0X39分別是0-9的ASCII.除以16的目的是右移4位,這樣余數分別為0-9。
改進(jìn)網(wǎng)友的程序框圖:
網(wǎng)友的程序框圖雖然比較復雜,但是還是有借鑒意義的,這里面實(shí)際上給出了字符串表示的數字轉換為各個(gè)位組成數組的方法,我們可以更為簡(jiǎn)單的方法實(shí)現同樣的功能。以整型數為例。

在LABVIEW中,類(lèi)似功能最常見(jiàn)的方法是U8數組減去0X30,這樣直接得到各個(gè)位構成的數組。即便使用網(wǎng)友的方法,也可以用求余數函數對數組進(jìn)行整體運算。這是LABVIEW數組有別于C語(yǔ)言數組的一個(gè)重要特點(diǎn),在C語(yǔ)言中是不允許對數組進(jìn)行整體運算操作的。
推薦解決方法:
LABVIEW是面向工程應用的編程語(yǔ)言,對于基本的編程需要,肯定是提供相應的函數的,而且遠比其它編程語(yǔ)言方便得多,充分體現了LABVIEW易于使用的特點(diǎn)。對于字符串轉換雙精度數,在字符串函數選板中,至少提供了三個(gè)函數可以完成這樣的轉換功能,見(jiàn)下圖。
推薦解決方法:
LABVIEW是面向工程應用的編程語(yǔ)言,對于基本的編程需要,肯定是提供相應的函數的,而且遠比其它編程語(yǔ)言方便得多,充分體現了LABVIEW易于使用的特點(diǎn)。對于字符串轉換雙精度數,在字符串函數選板中,至少提供了三個(gè)函數可以完成這樣的轉換功能,見(jiàn)下圖。

評論