#include#includeusingnamespacestd;/*参数bcd:转化后BCD结果asc:需转化ASC字符串len:需转化长度fmt:转化后的格式,即长度为奇数时,前补还是后补零返回值处理的BC...
#include
#include
using namespace std;
/*
参数
bcd: 转化后BCD结果
asc: 需转化ASC字符串
len: 需转化长度
fmt: 转化后的格式,即长度为奇数时,前补还是后补零
返回值
处理的BCD字节长度
*/
int ASC2BCD (unsigned char *bcd, const char *asc, int len, int fmt)
{
int i, odd;
char c;
odd = len&0x01;
if ( odd && !fmt)
*bcd++ = (*asc++) & '/x0F';
len >>= 1;
for (i=0; i
c = (*asc++) << 4;
c |= (*asc++) & '/x0F';
*bcd++ = c;
}
if ( odd && fmt)
*bcd = (*asc) << 4;
return (i+odd);}
int main()
{
unsigned char ret[4];
unsigned char * bcd=ret;
char * asc="m321jkasdfll5";
int len=sizeof(asc)/2;
int fmt=len;
int flag=0;
flag=ASC2BCD(bcd,asc,len,fmt);
cout<
}
以上这段代码打印出来是乱码,伤不起,看不懂。。。
而这个更是极品的直接出错,连错在哪儿都找不到,求助,求分享,求平等提升!!!
#include
#include
using namespace std;
//转换为BCD码
int ConvertToBCD(char *szSrc, char *szDest)
{
char *p=szSrc;
char *p1 = szDest;
int nSize=0;
while(1)
{
if(*p == NULL)
break;
nSize ++;
*p1 = *p++ - '0 ';
if(*p == NULL)
{
*p1 |= 0xf0;
break;
}
else
*p1 |= (*p++ - '0 ') <<4;
}
return nSize;
}
int main()
{
char * s="testment01";
char * s1;
ConvertToBCD(s,s1);
cout<
return 1;
}
高分悬赏!
展开