Labview中数值将字符串转化为数值

我们都知道两点之间最近的路径是直线,遗憾的是程序员往往走的并非直线。

目的:字符串转换为双精度数。
网友的程序框图:
Picture
分析网友的程序框图:

网友的目的是字符串转换为双精度数,从程序框图上看,他限定了字符串的格式。字符串由5个字符组成,其中整数部分2个字符,小数点1个字符,小数部分两个字符。
网友首先把字符串转换为U8数组,然后利用索引数组取出各个位,根据各位、百位、小数点后一位、小数点后两位,分别乘以10、100、0.1、0.01,然后求和。
框图中比较难理解的是除以16,求余数的操作,他的目的把ASCII转换为数字。我们知道ASCII 0X30...0X39分别是0-9的ASCII.除以16的目的是右移4位,这样余数分别为0-9。

改进网友的程序框图:
网友的程序框图虽然比较复杂,但是还是有借鉴意义的,这里面实际上给出了字符串表示的数字转换为各个位组成数组的方法,我们可以更为简单的方法实现同样的功能。以整型数为例。
 
Picture
在LABVIEW中,类似功能最常见的方法是U8数组减去0X30,这样直接得到各个位构成的数组。即便使用网友的方法,也可以用求余数函数对数组进行整体运算。这是LABVIEW数组有别于C语言数组的一个重要特点,在C语言中是不允许对数组进行整体运算操作的。

推荐解决方法:
LABVIEW是面向工程应用的编程语言,对于基本的编程需要,肯定是提供相应的函数的,而且远比其它编程语言方便得多,充分体现了LABVIEW易于使用的特点。对于字符串转换双精度数,在字符串函数选板中,至少提供了三个函数可以完成这样的转换功能,见下图。

Picture
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值