位操作是自动化操控中常常遇到的问题,最近看到论坛上有人说到字节高四位和低四位提取的问题,今日细心讨论一下位的操作.
位不等于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言语一般用移位的办法完成,速度比较快,而BAS%&&&&&%言语是经过核算完成的。
关于移位,在LV里有三种办法,1,直接用移位VI,2、使用公式节点 3、MATHSCRIPT供给了位操作函数。
下面演示一下几种办法:
关于某一方位1能够经过NUM OR 0X08 完成(BIT3,从0开端),置0能够用NUM AND !0X08完成,当然也能够经过上面的BOOLEAN数组的操作完成,不过位自身操作速度应该更快一些。