您的位置 首页 ADAS

LABVIEW的深化探究之功能强大的位操作能力

学习过C语言的朋友们都知道,每当我们谈起C语言的优势时,强大的位操作能力是不能不提的,正是因为C语言具有强大的位操作能力,使得C语言广

学习过C言语的朋友们都知道,每逢咱们谈起C言语的优势时,强壮的位操作能力是不能不提的,正是因为C言语具有强壮的位操作能力,使得C言语广泛用于开发操作体系和嵌入式运用中。

LABVIEW作为面向详细运用的工程师的编程言语,因为常常需求操作硬件设备寄存器,而寄存器往往都是需求位操作的,因而LABVIEW具有位操作能力是有必要的。LABVIEW不只具有强壮的位操作能力,并且操作极端便利,这得益于LABVIEW具有一般编程言语不具有的特别数据类型–布尔量。

信任常常运用C51和PLC的朋友们都十分了解位操作,51单片机具有自己的位寻址区,位寻址区不光能够进行位寻址,也能够按字节、字(双字节)寻址,PLC也是如此。可是许多设备和编程言语是不支撑位寻址的,只允许字节或许字的办法,高档编程言语根本如此。

我鄙人面的文章中大致提及了LABVIEW中的位操作,可是是针对详细问题的,本文期望体系性地评论一下LABVIEW中的位操作极端特色。

http://www.jsuedc.cn/csxcs366/blog/08-08/153754_5fd57.html

C言语中的位操作符包含位非(按位取反)、位与、位或和异或四个根本操作符,LABVIEW供给了更多的位操作函数,这表现了LABVIEW言语的面向运用的特色,其实,具有了与、或、非三个根本操作符,其它位操作符都能够由与、或、非操作符组合而成。

LABVIEW供给了共同的布尔数据类型,可是布尔数据实践占用一个字节,也便是说,布尔数据尽管形式上相似于位,可是与位是彻底不同的,LABVIEW使用一个字节表明布尔量,假如字节值为0,则表明布尔量为FALSE,假如值为1,则表明布尔量为TRUE。

LABVIEW专门供给布尔函数选板,包含了与、或、非等多种布尔操作函数,如下图所示:

LABVIEW中的布尔函数根本都是多态函数,具有两个十分重要的特色:

1、布尔函数支撑布尔量的逻辑运算

2、支撑U8、U16、U32等位运算

3、函数的输入端子有必要为布尔值或数字。 能够是标量、数字或布尔值数组或簇、数字或布尔值簇数组等。

布尔量的根本逻辑运算十分简略,这儿就不详细评论了。关于多字节的位运算,比方U16、U32等,与U8的位操作十分相似,因而下面的评论主要是针对U8数据的。

首要咱们考虑一下为什么要针对U8而不是I8数据类型那,I8数据的最高位为符号位,因而I8主要是用来表明数值的巨细的。咱们选用U8进行位操作,U8数据每个位都表明一个布尔值(开关量),每个位的值只要0、1两种挑选。U8数据能够表明8个位,不存在符号的问题,实践上咱们对U8所代表的值并不关怀,咱们更关怀的是每个位的值是0仍是1。

下面咱们开端评论LABVIEW中常用的位操作。

一、掩码

因为高档言语不支撑位寻址,所以针对字节或字中的某一位或许几位进行操作时,有必要凭借与掩码。掩码是某些位为0,某些位为1的位组合。关于字节的位操作,一般选用下列掩码(MASK)

BIT0—–>(MASK) 0X01

BIT1—–>(MASK) 0X02

BIT2—–>(MASK)0X04

BIT3—–>(MASK)0X08

BIT4—–>(MASK)0X10

BIT5—–>(MASK)0X20

BIT6—–>(MASK)0X40

BIT7—–>(MASK)0X80

一个字节有8位构成,别离界说为BIT0—>BIT7,每位的掩码是该位为1,其它为0的U8数。

二、怎么求取掩码

咱们罗列了U8的8个掩码,假如是U64,则会有64个掩码,这种情况下选用罗列的办法就很麻烦了。很明显,掩码是有规则的,从BIT0开端为1,顺次递加2倍,因而能够用下列两种办法求取掩码。

1、计算法

2、移位法

咱们知道,乘以2运算实践上便是移位运算,并且更为方便,这是C言语中常用的办法。

三、置位(翻开位)

对某一方位1,而其它位坚持不变,这种操作称作置位(SET)操作,也称作翻开位操作(OPEN).

假如需求某方位位,而其它位不变,与该位掩码进行按位或运算即可。下面的比如对BIT3进行置位操作。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/211575.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部