|
在门禁行业经常要用到将十六进制卡号转为十进制的情况,当然对于比较小的数,直接除,取余就好了。但是对于这种超过10亿的数,我没有找到更好方法,为此,我上传自己写的程序,希望大家共同探讨
u32 Card_Num,tee;
u8 syy,qwbw,sww,qb,sg,i;
Card_Num=0XFFFFFFFF
i=0;
while(Card_Num>=1000000000)
{
Card_Num=Card_Num-1000000000;
i++;
}
syy=i<<4;
i=0;
while(Card_Num>=100000000)
{
Card_Num=Card_Num-100000000;
i++;
}
syy=syy+i;
i=0;
while(Card_Num>=10000000)
{
Card_Num=Card_Num-10000000;
i++;
}
qwbw=i<<4;
i=0;
while(Card_Num>=1000000)
{
Card_Num=Card_Num-1000000;
i++;
}
qwbw=qwbw+i;
i=0;
while(Card_Num>=100000)
{
Card_Num=Card_Num-100000;
i++;
}
sww=i<<4;
i=0;
while(Card_Num>=10000)
{
Card_Num=Card_Num-10000;
i++;
}
sww=sww+i;
i=0;
while(Card_Num>=1000)
{
Card_Num=Card_Num-1000;
i++;
}
qb=i<<4;
i=0;
while(Card_Num>=100)
{
Card_Num=Card_Num-100;
i++;
}
qb=qb+i;
i=0;
while(Card_Num>=10)
{
Card_Num=Card_Num-10;
i++;
}
sg=i<<4;
sg=sg+Card_Num; |
|