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的吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
0x59 16进制不是其他数吗,我知道这是59秒,可是到底是怎么搞成等于10进制的59秒的?按照道理来说16进制的59和10进制的59不是两个完全不同的数吗,怎么居然可以作为10进制的59来比较了?不应该是大于59然后什么什么的
一周热门 更多>