if不能判断有符号数的大小?编译器bug还是我bug了。。。
时间:10-02
整理:3721RD
点击:
*pi_x_temp是整型指针型变量,程序原来打算先发送*pi_x_temp的数据,再判断它小于0就发送一个0xff。但是从串口发回的数据,当它数据是0xfe13的时候,if仍然没有觉得它是一个负数,所以不发生0xff。我怀疑是if不能判断正负,于是单独编写了一个函数测试,然后是能判断正负的。所以,我目前的程序出了bug了吗?有符号数的0xfe13绝对是个负数吧,那是哪里搞错了呢?
求大神赐教,解决完这个问题好回家过中秋啊
求大神赐教,解决完这个问题好回家过中秋啊
我是说打印你串口收到的数据打印出来.照你如果的说法,那就是这个值是无符号数,不是有符号的.当然,你直接跟这个值比较也能判断出符号.
额,呵呵,你拿一个符号数接收一下这个指针指向的内容再做判断.你这个指针是整形,但是指针里面的数可不一定哦.
我用的是as7.0编译器环境,已经把编译器设置为不优化代码了
我用一个整型的数据接收了指针指向的值,但是还是不能判断正负。
调试一下啊,打印出来你整形接收的数据对不对,不能光靠自己想象他是什么样就是什么样的.
话说你这程序怎么这么奇怪- -.这里面有接收函数?还有整形数你发送形式也太奇怪了吧.写法有问题.
串口打印的显示不是负数,如果我让它和0x8000比较,那就可以判断是正负了
你说的太对了,确实是我没有赋值成功,这个数不被当成有符号数,所以才不能用if判断正负