标题:
关于1302日期BCD处理的代码问题
[打印本页]
作者:
泳馨
时间:
2020-3-20 14:47
标题:
关于1302日期BCD处理的代码问题
if(month%16==10)
month=(month/16)*16+16;
是什么意思怎么解释?
作者:
adject
时间:
2020-3-20 14:47
if(month%16==10) //判断月份是否大于9月
month=(month/16)*16+16; //把月份转成BCD码
BCD码0xab a为10进制的 10位数 b是个位是
也可以这样写
month= (month/10)>>4 + month%10
作者:
carpcarey
时间:
2020-3-20 19:12
if(month%16==10) month=(month/16)*16+16;
等效
if(month&0x0f==0x0a) month=(month&0xf0)+0x10;
也就是说,在月份加一后(此时是16进制的加1),判断是否不符合BCD码的格式,不符合就要调整,要在BCD码的十位上加1。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1