if不能判断有符号数的大小?编译器bug还是我bug了。。。

2019-07-15 13:03发布

*pi_x_temp是整型指针型变量,程序原来打算先发送*pi_x_temp的数据,再判断它小于0就发送一个0xff。但是从串口发回的数据,当它数据是0xfe13的时候,if仍然没有觉得它是一个负数,所以不发生0xff。我怀疑是if不能判断正负,于是单独编写了一个函数测试,然后是能判断正负的。所以,我目前的程序出了bug了吗?有符号数的0xfe13绝对是个负数吧,那是哪里搞错了呢?
求大神赐教,解决完这个问题好回家过中秋啊



捕获.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
一瓜子
1楼-- · 2019-07-16 06:28
jianfeii 发表于 2016-9-14 10:53
调试一下啊,打印出来你整形接收的数据对不对,不能光靠自己想象他是什么样就是什么样的.

串口打印的显示不是负数,如果我让它和0x8000比较,那就可以判断是正负了
一瓜子
2楼-- · 2019-07-16 10:22
jianfeii 发表于 2016-9-14 10:23
我是说打印你串口收到的数据打印出来.照你如果的说法,那就是这个值是无符号数,不是有符号的.当然,你直接跟这个值比较也能判断出符号.

你说的太对了,确实是我没有赋值成功,这个数不被当成有符号数,所以才不能用if判断正负

一周热门 更多>