- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
labview编程技巧-----如何处理数据的位
录入:edatop.com 点击:
位操作是自动化控制中经常遇到的问题,最近看到论坛上有人提到字节高四位和低四位提取的问题,今天仔细探讨一下位的操作.
位不等于LABVIEW中的布尔量BOOLEAN占一个字节,和U8 I8相同,在内存中都是一个字节.
而一个字节是由8个位组成的,所以一个字节可以表示8个开关量.
最简单地操作是BOOLEAN 转换成I16,LV本身提供,FALSE---->0,TRUE---->1
数字转换成BOOLEAN,LV没提供,实际用!=0判断就可以了,非0既为真
因为BOOLEAN和I8 U8同占一个字节,因此转换也可以直接用CAST函数实现
因为LABVIEW提供了NUM-->BOOLEAN ARRAY和BOOLEAN ARRAY--->NUM的转换,所以很容易通过BOOLEAN数组替换实现对数的位的置位复位操作.NUM的类型可以是I8、I16、I32和I64
取出一个字节的高四位和低四位,可以通过计算和移位两种方式实现,C语言一般用移位的方式实现,速度比较快,而BASIC语言是通过计算实现的。
对于移位,在LV里有三种方法,1,直接用移位VI,2、利用公式节点 3、MATHSCRIPT提供了位操作函数。
下面演示一下几种方法:
对于某一位置1可以通过NUM OR 0X08 实现(BIT3,从0开始),置0可以用NUM AND !0X08实现,当然也可以通过上面的BOOLEAN数组的操作实现,不过位本身操作速度应该更快一些。
位不等于LABVIEW中的布尔量BOOLEAN占一个字节,和U8 I8相同,在内存中都是一个字节.
而一个字节是由8个位组成的,所以一个字节可以表示8个开关量.
最简单地操作是BOOLEAN 转换成I16,LV本身提供,FALSE---->0,TRUE---->1
数字转换成BOOLEAN,LV没提供,实际用!=0判断就可以了,非0既为真
因为BOOLEAN和I8 U8同占一个字节,因此转换也可以直接用CAST函数实现
因为LABVIEW提供了NUM-->BOOLEAN ARRAY和BOOLEAN ARRAY--->NUM的转换,所以很容易通过BOOLEAN数组替换实现对数的位的置位复位操作.NUM的类型可以是I8、I16、I32和I64
取出一个字节的高四位和低四位,可以通过计算和移位两种方式实现,C语言一般用移位的方式实现,速度比较快,而BASIC语言是通过计算实现的。
对于移位,在LV里有三种方法,1,直接用移位VI,2、利用公式节点 3、MATHSCRIPT提供了位操作函数。
下面演示一下几种方法:
对于某一位置1可以通过NUM OR 0X08 实现(BIT3,从0开始),置0可以用NUM AND !0X08实现,当然也可以通过上面的BOOLEAN数组的操作实现,不过位本身操作速度应该更快一些。
上一篇:labview编程技巧-----字符串之如何判断字符串包含的是数字
下一篇:labview编程技巧-----数据库之如何调用数据库链接属性对话框