智能车制作

标题: int型不能为负 [打印本页]

作者: 曾超超    时间: 2016-3-19 10:55
标题: int型不能为负
我用蓝宙的 摄像头例程,发现单片机无法识别小于o的数字,比如int k =-1;用串口发出来就成了255了;也不是-1,也不是int型的最大数,可一样的程序过几天就好了,有没有遇到的小伙伴;教教我啊


作者: 361369499    时间: 2016-3-19 11:01
也许你遇到量子力学导致的bug了
作者: zhou1994    时间: 2016-3-19 12:17
串口一次还把int的最大数发出来了。我来学习学习
作者: wjjjb    时间: 2016-3-19 21:25
串口好像只每次发送一个字节的数
作者: 暗光    时间: 2016-3-19 21:56
第一,串口一次发送一个字节的数,也就是char型的8位,而K60的int型是32位。应该改成char型的,多次发送,然后负数的存储形式是补码形式,-1的补码是绝对值|1|按位取反然后加一,也就是1111 1111 1111 1111 1111 1111 1111 1110 在加一,就是32个1了,然后发送时,你把这个变量传给串口发送函数,然后会把后8位发出去,也就是你的串口接收的是1111 1111,也就是255了。至于为什么一会好,一会不好,我就不知道了。看此贴了解负数http://blog.csdn.net/youcharming/article/details/41982239




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2