- 论坛徽章:
- 0
|
bcd码to INT程序阅读请教
int BCD2INT(unsigned char *pstr,int num,char * strTemp)
{
unsigned char ch,ch1;
int i,j;
i=0;
for(j=0;j<(num/2);j++)//这一个循环的意义何在?
{ //BCD码是将两个ASC压缩在一里面,所以长度除2
ch=pstr[j];
//BCD 0X25 到ASC 就是 0x32 0x35 所以高四位要右移
ch1=(ch>;>;4); //这个(ch>;>;4)是何作用?
//这句作用是将高四位数据右移四位
//经过这一句 就会 ch1 = 0x02
if( ch1 >;= 0x0 && ch1 <= 0x9 )
strTemp[i++]=ch1+'0'; //还有这个。都看不明白,
//这个+'0'就是把数字转换成ASC码 就是+0x30
else if ( ch1 == 0x0f )
break;
ch1=(ch&0x0f); //这个是对低四位的处理,当然要把高四位清0
if( ch1 >;= 0x0 && ch1 <= 0x9 )
strTemp[i++]=ch1+'0';
else if ( ch1 == 0x0f )
break;
}
strTemp=0;
return 1;
}
不好意思,语文没学好,
不知道有没有说清楚。
有问题的话fool_cn@hotmail.com
偶也是初学。:-) |
|