type-cast的用法总结(一)

 时间:2024-11-07 21:25:59

labview中进行强制数据类型转换时,经常用到cast模块,本经验就是对该模块的初步总结。这需要一定的二进制基础知识。

工具/原料

labview2011

一:CAST模块的查找和数据流连接

1、打开labview的后面板,通过prog筠续师诈ramming——numeric——datamanipulation,选择拖拽typecast模块,并将其进行最基础的线路连接。

type-cast的用法总结(一)

type-cast的用法总结(一)

二:type数据类型位宽小于输入数据类型位宽

1、我们将输入类型选择为I16(含16bits);而type类型为:U8(含8bits);

type-cast的用法总结(一)

type-cast的用法总结(一)

2、此时我们发现输入的32767,输出的确实127。数值变小,这至少说明在转换中数据出现了溢出。

type-cast的用法总结(一)

3、之所以出现溢出,是因为将16位数据转换为8位数据时失去了呖分甾胗8位的数值,而在labviewcast定义中,失去的是低恕煨乌溪权位的数值,所以这里只保留了16位数值的左侧8位。我们经过下面的计算就可以知道结果却是127;注:对于正整数,有符号和无符号二进制数值转换为10进制时结果一模一样。

type-cast的用法总结(一)

三:type位宽等于输入数值位宽时

1、如果将type变为I16和U16,根据上一步的注,可以知道此事位宽均相同。

type-cast的用法总结(一)

type-cast的用法总结(一)

2、此时位宽完全相同,数值完全等于输入的数值。此时相当于没有进行任何数值转换。

type-cast的用法总结(一)

四:type位宽大于输入数值的位宽

1、有前面知道,输入为I16;如果我们将type变为I32;此时位宽增加了16位;运行后可以看到数值远远大于输入数值。

type-cast的用法总结(一)

type-cast的用法总结(一)

2、此时转换过程是,I16位从I32位的左侧开始占空,而右侧的低权位缺省位、为廴类锾渭0;注1:输入为有符号,符号位为0;注2:转换为无符号时,守卫仍为0;注3:位宽的位置序号从右往左,从0开始计数。

type-cast的用法总结(一)

3、同样,当我们将type类型改为I64位,此时位宽进一步加倍;计算结果更加接近天文数字,和输入值之间的关系很难捉摸。

type-cast的用法总结(一)

type-cast的用法总结(一)

4、此时我们只需要知道右侧缺省0的位数为48,然后很方便进行算数计算就可以得到labview一样的结果。注:符号位为正,用0赋值。

type-cast的用法总结(一)

labview创建本地文件过程的经验总结 LabVIEW-选择 Labview中字符转十进制以及十六进制介绍 LabVIEW-数值-刻度条 在LabVIEW里面显示字符长度的结果
热门搜索
大丹犬图片 忧伤图片 学生图片 墙绘图片 寄生兽漫画