单片机数据的溢出问题;

2019-03-24 18:36发布

最近在编一段程序,发现数据老是溢出:
unsigned long  temp ,sum;
unsigned int  DispyData;

temp = sum *100 / 4095;DispyData = temp;//数码管的显示值
在此情况下,但DispyData > 255时,数码管显示为8.8.8.8.;
开始以为是数据类型不对应,DispyData = (unsigned int )(temp0;//数码管的显示值,还是为出现以上的情形;
但是将 DispyData = sum * 100 / 4095;却能正常显示;
不知道为啥,求高人指点。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
gaoyang9992006
1楼-- · 2019-03-25 00:10
建议楼主除法能用移位代替的就用移位。太大的除法,可能会导致溢出。
chunyang
2楼-- · 2019-03-25 03:41
 精彩回答 2  元偷偷看……
huzi741
3楼-- · 2019-03-25 08:56
谢谢啦 我试试看
huzi741
4楼-- · 2019-03-25 12:16
不知道你指的计算方法是指算法吗
chunyang
5楼-- · 2019-03-25 16:24
 精彩回答 2  元偷偷看……

一周热门 更多>