标题: 51单片机+LCD1602显示4位数年份为什么会出错,月份日显示都正确了? [打印本页]

作者: 生来不会    时间: 2023-11-3 20:40
标题: 51单片机+LCD1602显示4位数年份为什么会出错,月份日显示都正确了?
这个LCD1602显示4位数年份为什么会出错,月份日显示都正确了

1699015192086.jpg (1.25 MB, 下载次数: 74)

1699015192086.jpg

1699015177053.jpg (1.13 MB, 下载次数: 78)

1699015177053.jpg

作者: XLinliY.Zhang    时间: 2023-11-3 21:00
n传递的是char类型,带有正负值,且不够储存年份的,你强塞年份有几率导致数值变成负数,计算后负数加‘0‘就变成符号了,你需要使用unsigned int来传递年份
作者: 生来不会    时间: 2023-11-3 21:09
XLinliY.Zhang 发表于 2023-11-3 21:00
n传递的是char类型,带有正负值,且不够储存年份的,你强塞年份有几率导致数值变成负数,计算后负数加‘0‘ ...

太感谢了,刚刚改过后正常了
作者: 生来不会    时间: 2023-11-3 21:17
XLinliY.Zhang 发表于 2023-11-3 21:00
n传递的是char类型,带有正负值,且不够储存年份的,你强塞年份有几率导致数值变成负数,计算后负数加‘0‘ ...

太感谢了,顿悟
作者: npn    时间: 2023-11-3 21:58
char范围:-128~127,4位数需要int的数据类型。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1