51 单片机 做一个简易的计算器,用过6个数码管显示

最大值是999999,但是为什么我用999999+1的时候数码管显示的却是934464?我的本意是当结果大于999999的时候数码管不显示了。999999+2的时候显示93465,,999999*1的时候显示的是934463.
请问大伙,这个是什么问题啊?麻烦各位。。。

按照你说的数值

999999*1=934463
999999+1=934464
999999+2=934465(这个你写的93465,我猜是你写急了掉了位)

这样可以分析出,应该你是数码显示出问题了。
把999999显示为了934463.
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-03
数据溢出了,不清楚你定义变量是什么类型,如果长度不够就溢出咯追问

你好,我定义的是unsigned long类型

第2个回答  2013-09-03
你的定义是什么类型的,999999已经超过了2字节.
你看看是不是这个问题?追问

你好,我定义的是unsigned long类型

追答

你自己好好检查,应该是你数据溢出的原因。

第3个回答  2013-09-03
程序问题,是不是数据类型没搞好,或者程序算法有问题,详细看程序
相似回答