微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于sec&0xf的问题

关于sec&0xf的问题

时间:10-02 整理:3721RD 点击:
是这样的,sec代表秒,初值为0,跟随时钟每一秒加1,有句语句我不是很懂
sec&0xf,这句话是不是可以理解成这个十进制的数和16进制数相与了,得到了这个十进制数的16进制表现形式
然后if((sec&0xf)>=0xa)sec+=6;
这样在LCD上就可以显示1到10了

sec&0xf 等价于 sec%16 或者 sec%0x10,你的结论是对的;
从你提供的语句看,你的sec是BCD码格式,即每4位表示一位10进制数;
机器做加法的时候没有专门的BCD加法指令,只能按照二进制格式做加法,所以会出现各位超过9的状况,这样就需要做BCD加法调整;
MCS51就有专门的DA A指令对累加器A做BCD加法调整。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top