咱们都知道两点之间最近的途径是直线,惋惜的是程序员往往走的并非直线。
意图:字符串转化为双精度数。
网友的程序框图:
网友的程序框图:
剖析网友的程序框图:
网友的意图是字符串转化为双精度数,从程序框图上看,他限制了字符串的格局。字符串由5个字符组成,其间整数部分2个字符,小数点1个字符,小数部分两个字符。
网友首先把字符串转化为U8数组,然后运用索引数组取出各个位,依据各位、百位、小数点后一位、小数点后两位,别离乘以10、100、0.1、0.01,然后求和。
框图中比较难了解的是除以16,求余数的操作,他的意图把ASCII转化为数字。咱们知道ASCII 0X30…0X39别离是0-9的ASCII.除以16的意图是右移4位,这样余数别离为0-9。
改善网友的程序框图:
网友的程序框图尽管比较复杂,可是仍是有学习含义的,这里边实际上给出了字符串表明的数字转化为各个位组成数组的办法,咱们能够更为简略的办法完结相同的功用。以整型数为例。
在LABVIEW中,相似功用最常见的办法是U8数组减去0X30,这样直接得到各个位构成的数组。即使运用网友的办法,也能够用求余数函数对数组进行全体运算。这是LABVIEW数组有别于C言语数组的一个重要特色,在C言语中是不允许对数组进行全体运算操作的。
引荐解决办法:
LABVIEW是面向工程运用的编程言语,关于根本的编程需求,肯定是供给相应的函数的,并且远比其它编程言语便利得多,充分体现了LABVIEW易于运用的特色。关于字符串转化双精度数,在字符串函数选板中,至少供给了三个函数能够完结这样的转化功用,见下图。