labview的公式节点中的移位有bug啊

2019-07-17 11:37发布

比如我写入 如下代码在公式节点uInt16 a1=0xABCD, a2 ,a3;a2=a1>>8;  //右移8位a3=a1<<8; //左移8位
把a2,a3输出显示,其结果是a2为AB,a3为FFFF,可以看到左移是错误的。不知道大家发现没有。
而在c语言中,就没有这个问题。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
偶是糕富帅
2019-07-17 18:20
是不是可以这么理解,左移是乘法,所以会溢出。因为存在高位溢出的情况,所以,一般在左移的时候,会考虑将数据类型升级,如u16,变为u32.

uInt16 a1=0xABCD, a2 ,a3;
uInt32 a4;
a2=a1>>8;
a4=a1<<8;
a3=a4&0xFFFF;

一般是这样用

一周热门 更多>