LabVIEW将会直接使用要转化数据的高位来表示转化后的结果
发布时间:2015/5/2 18:22:15 访问次数:935
以上就把一个带符号8位整数转变为一个无符号整数,在LabVIEW中不同数据类型DRV602PW之间的转化必须遵循输入数据与输出数据的位数相同的原则,否则将出现用户不希望的数值。
将中Type Cast其中第2个参数类型修改为16位无符号整数,结果如图3-91中黑色实线中包围的部分。此时VI的运行结果如图3-92所示。因为“要转化的数据”为8位数,而转化后的数据为16位数,数据的长度不一致,因此出现了用户意料之外的结果。在LabVIEW中,当数据的长度不一致对,会做特殊处理。在本例中,将8位的转化结果“11110110”向更高位移动了8位,变成“1111 0110 0000 0000”,即十进制的“62976”。如果转化后数据的位数小于要转化的数据,LabVIEW将会直接使用要转化数据的高位来表示转化后的结果,而要转化数据的低位将被舍掉。比如把一个带符号16位整数“-10”转变为一个8位无符号整数,结果将是“1111 1111”,即十进制的255。
上述数据类型转换存在很大的局限,在LabVIEW中还提供了其它方式的数据类型转化函数,用来更方便地进行各种类型间的数据转换。在程序框图中,选择黑色实线框包围的路径,以及该路径下的图形接口U8,该函数的功能是将输入的数据转化成无符号的8位整型数,为方便与图的结果对比,建立程序,输入带符号的16位整数,启动VI文件后,结果如图3-95所示,转化后的数值与完全一致,即取得了正确的数值。
以上就把一个带符号8位整数转变为一个无符号整数,在LabVIEW中不同数据类型DRV602PW之间的转化必须遵循输入数据与输出数据的位数相同的原则,否则将出现用户不希望的数值。
将中Type Cast其中第2个参数类型修改为16位无符号整数,结果如图3-91中黑色实线中包围的部分。此时VI的运行结果如图3-92所示。因为“要转化的数据”为8位数,而转化后的数据为16位数,数据的长度不一致,因此出现了用户意料之外的结果。在LabVIEW中,当数据的长度不一致对,会做特殊处理。在本例中,将8位的转化结果“11110110”向更高位移动了8位,变成“1111 0110 0000 0000”,即十进制的“62976”。如果转化后数据的位数小于要转化的数据,LabVIEW将会直接使用要转化数据的高位来表示转化后的结果,而要转化数据的低位将被舍掉。比如把一个带符号16位整数“-10”转变为一个8位无符号整数,结果将是“1111 1111”,即十进制的255。
上述数据类型转换存在很大的局限,在LabVIEW中还提供了其它方式的数据类型转化函数,用来更方便地进行各种类型间的数据转换。在程序框图中,选择黑色实线框包围的路径,以及该路径下的图形接口U8,该函数的功能是将输入的数据转化成无符号的8位整型数,为方便与图的结果对比,建立程序,输入带符号的16位整数,启动VI文件后,结果如图3-95所示,转化后的数值与完全一致,即取得了正确的数值。