c++ 转bcd码_c++字符串,转换为BCD码的程序报错,求纠错,求帮助!

#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;

}

高分悬赏!

展开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值