void CharToBcd(char* iChBuf,char *iChTemp)
//字符串转换为BCD码
{
int i,x;
for(i=0;i<strlen(iChBuf);i+=2)
{
x=ChangeToBcd( iChBuf[i] );
//转换单个字符为十进制
x*=16;
//十进制转换十六进制
x+=ChangeToBcd( iChBuf[i+1] );
iChTemp[i/2]=x;
}
}
int ChangeToBcd(char *iChTemp)
//转换单个字符
{
int m;
if( iChTemp>='0' && iChTemp<='9' )
{
m=iChTemp-'0';
}
else if( iChTemp>='A' && iChTemp<='Z' )
{
m=iChTemp-'A'+10;
}
return m;
}
这是笔者写的代码
一起交流一下
本例中的源数组是iChBuf,目标数组是 iChTemp,转换后将iChTemp倒序输出