我正在尝试在iso 8583
下面打包一条消息
00 2F 60 01 23 06 00 08 00 20 20 01 00 00 c0 00
00 92 00 00 00 00 12 01 23 48 30 30 30 30 30 30
39 53 31 30 30 30 30 30 30 30 30 30 30 30 30 35
在这里,当我从位图中提取位字段时,我得到了字段3,11,24,41,42
和3
所在11
的N6 format
字段,字段24
在N3 format
和字段41,42
中ANS format..
在发送数据包之前,数字格式的字段需要由函数更改为 BCD 格式
enter code here
void vAscii2BCD(unsigned char *pucSrc, unsigned char *pucDst, int inSize)
{
for (; inSize > 0; inSize -= 2, pucDst++)
{
if(!memcmp(pucSrc, "3D", 2))
{
pucSrc += 2;
*pucDst = '=';
}
else
{
*pucDst = cHexDigit_to_Nibble1(*pucSrc++) << 4;
*pucDst |= cHexDigit_to_Nibble1(*pucSrc++);
}
}
printf("data is %s\n\n",pucDst);
}
但是当我尝试将所有'00'转换为BCD并将这个00添加到字符串的其余部分时它失败了..当我对消息执行“00”的strcat然后在接收端它会作为“ 3030"
任何人都可以建议我如何编码 00 以便在接收端也可以接收所有相应的 00。