关于万年历的一些小问题

2019-07-15 08:40发布

switch(count)                          {                                  case 1:                          temp=ds1302_read_byte(0x80);  //读取秒数                                                  temp=temp+1;  //秒数加1                          up_flag=1;    //数据调整后更新标志                                                  if((temp&0x7f)>0x59)   //超过59秒,清零                          temp=0;                                                                                                                    break;                           case 5:                          temp=ds1302_read_byte(0x86);  //读取日数                                                  temp=temp+1;  //日数加1                          up_flag=1;                                                  if(temp>0x31)                                                  temp=1;                                                  break;                           case 6:                          temp=ds1302_read_byte(0x88);  //读取月数                                                  temp=temp+1;  //月数加1                                                  up_flag=1;                                                  if(temp>0x12)                                                  temp=1;                                                  break;                           case 7:                          temp=ds1302_read_byte(0x8c);  //读取年数                                                  temp=temp+1;  //年数加1                          up_flag=1;                                                  if(temp>0x85)                                                  temp=0;                                                  break;                               default:break;
请问 if(temp>0x85)   if(temp>0x12)   if(temp>0x31)   if((temp&0x7f)>0x59) 该怎么理解呢?temp=temp-1;  //年数减1if(temp==-1)temp=0x85甚至还有这个????59这个整数怎么变成进制0x59来比较的??不是应该temp大于十进制的59的吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
李春明
1楼-- · 2019-07-15 20:34
码制不一样
勇哥-lzu
2楼-- · 2019-07-16 01:19
年份的0x85没看懂,0x59就是59秒,0x31就是一个月最多有31天,0x12也是12个小时
异世界的投影
3楼-- · 2019-07-16 02:37
勇哥-lzu 发表于 2018-4-13 09:07
年份的0x85没看懂,0x59就是59秒,0x31就是一个月最多有31天,0x12也是12个小时

0x59 16进制不是其他数吗,我知道这是59秒,可是到底是怎么搞成等于10进制的59秒的?按照道理来说16进制的59和10进制的59不是两个完全不同的数吗,怎么居然可以作为10进制的59来比较了?不应该是大于59然后什么什么的
勇哥-lzu
4楼-- · 2019-07-16 06:58
 精彩回答 2  元偷偷看……
坚持到最后
5楼-- · 2019-07-16 09:48
看看,来这里学习的

一周热门 更多>