首先要差异的是控件和数据类型的差异.
控件是数据类型的容器,或许说数据类型是控件的一个特点,控件都有一个值的特点,这个值的类型便是控件所代表的数据类型.
描绘一个控件是经过类型描绘符完成的,它包含控件的称号、控件类型及控件所代表的数据类型等等。
今日要谈的与控件自身无任何联系,是数据类型在内存中怎么存储的,或许称作数据的内存映射。
咱们知道,无符号整型数有U8、U16、U32、U64
U8 是指8位(BIT),一个字节(BYTE), 值规模:0X00—->0XFF
U16是指16位(BIT),二个字节(BYTE), 值规模:0x0000—>0XFFFF
U32是指32位(BIT),四个字节(BYTE), 值规模:0X00000000—》0XFFFFFFFF
U64是指64位(BIT),八个字节
规范的数据类型在内存中是接连寄存的,比方U32,是四个字节,那么一个U32就占用接连的4个字节的内存空间,同理,U16占用2个字节的空间,U64占用8个字节的接连空间。单精度是4个字节,双精度是8个字节。
经过下面的比如,能够清楚地看到,数据类型与字节的联系。
上面的图中的字符串是用HEX方法显现的,清楚地表明晰U16–》2BYTE,U32–》4BYTE,U64—-》8BYTE
以U32为例,它由四个字节组成,而这四个字节,能够了解成许多方法,它能够是
字符串—–四个字符,每个字符一个字节
U8数组—–四个元素,每个元素一个字节
U16数组—二个元素,每个元素占两个字节
LABVIEW的簇与C的结构不同,它是接连按字节寄存的,未选用对齐方法,因而咱们乃至能够了解成一个簇
这个簇能够是:
四个U8元素、2个U16元素、一个U8,一个U16和一个U8,总归,只需是四个字节就能够,对内存自身来说,是无法判别它究竟存储的是什么的。
LABVIEW中有一个“CAST”函数,中文版翻译成强制类型转化,CAST原意是铸造模型的意思,用它的原意比较适宜,关于四个字节,咱们能够依照咱们自己的了解转化成恣意数据类型,只需它的字节数相同。
假如咱们了解数据在内存中的映射联系,用CAST函数能够处理一些特别的类型转化问题。
U32转化成U8数组和U8组成的簇成果相同
直接用CAST把U32转化成U16数组和U16组成的簇与LV内置的拆分函数成果相同。