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

2019-07-15 13:03发布

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



捕获.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
jianfeii
1楼-- · 2019-07-15 16:31
一瓜子 发表于 2016-9-14 12:00
串口打印的显示不是负数,如果我让它和0x8000比较,那就可以判断是正负了

我是说打印你串口收到的数据打印出来.照你如果的说法,那就是这个值是无符号数,不是有符号的.当然,你直接跟这个值比较也能判断出符号. 最佳答案
jianfeii
2楼-- · 2019-07-15 17:23
额,呵呵,你拿一个符号数接收一下这个指针指向的内容再做判断.你这个指针是整形,但是指针里面的数可不一定哦.
一瓜子
3楼-- · 2019-07-15 21:51
我用的是as7.0编译器环境,已经把编译器设置为不优化代码了
一瓜子
4楼-- · 2019-07-16 03:31
 精彩回答 2  元偷偷看……
jianfeii
5楼-- · 2019-07-16 05:34
一瓜子 发表于 2016-9-14 10:50
我用一个整型的数据接收了指针指向的值,但是还是不能判断正负。

调试一下啊,打印出来你整形接收的数据对不对,不能光靠自己想象他是什么样就是什么样的.
jianfeii
6楼-- · 2019-07-16 05:50
话说你这程序怎么这么奇怪- -.这里面有接收函数?还有整形数你发送形式也太奇怪了吧.写法有问题.

一周热门 更多>