完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
比如我写入 如下代码在公式节点中 uInt16 a1=0xABCD, a2 ,a3; a2=a1>>8; //右移8位 a3=a1<<8; //左移8位 把a2,a3输出显示,其结果是a2为AB,a3为FFFF,可以看到左移是错误的。不知道大家发现没有。
而在c语言中,就没有这个问题。 |
|
相关推荐
6个回答
|
|
按照题目所说做了两组试验: A.所有变量使用Uint16来进行左、右位移的运算 B.所有变量使用Uint32来进行左、右位移的运算 采用uInt16则问题复现。而采用uInt32则计算结果正常。因此个人观点为:因为0xFFFF代表的是uInt16的最大值,所以是否为LabVIEW在处理左移超出数制范围时,默认其为无穷大或最大,因而采用0xFFFF表示。而不是单纯的抛弃左端,向右补“0”。 |
|
|
|
是不是可以这么理解,左移是乘法,所以会溢出。因为存在高位溢出的情况,所以,一般在左移的时候,会考虑将数据类型升级,如u16,变为u32.
uInt16 a1=0xABCD, a2 ,a3; uInt32 a4; a2=a1>>8; a4=a1<<8; a3=a4&0xFFFF; 一般是这样用 |
|
|
|
楼主应该再看看公式节点的帮助和说明。
|
|
|
|
问题是有的,可以这样解决,看图片…
|
|
|
|
就是公式节点的,labview到了2015的公式节点里面,仍然存在此类bug,可以跟vi的移位函数做比较,同时还有就是带符号的十六进制与,或等逻辑运算,在公式节点里面也有bug,而用移位函数的vi形式就没有问题。
|
|
|
|
学习了,很少使用公式节点
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
542 浏览 1 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
1005 浏览 1 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
1580 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
1514 浏览 3 评论
1791 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 14:46 , Processed in 0.667148 second(s), Total 58, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号