📄 str2bcd.cpp
字号:
#include "stdafx.h"
#include "ComOperate.h"
#include <stdio.h>
#include "str2bcd.h"
byte str2BCD ( bank1 byte *indata, byte inlen, bank1 byte *buff, byte blen)
{
// 此函数将字符串指针转换成压缩BCD码,字符串指针表示十六进制数
// indata 待压缩的字符串指针
// inlen 字符串长度
// buff 返回压缩BCD码的指针
// blen 返回缓冲区长度
// 返回值为返回结果长度,当缓冲区长度不够时,返回-1
byte i, j, n1 = 0, n2 = 0, n = 0,x;
for ( i =0 ; i < blen ; i++)
*buff = 0;
for (i = 0, j = 0; (i < inlen) && (j < blen); i = i + 2, j++)
{
x= indata[i] ;
if ((indata[i] >= 'a') && (indata[i] <= 'f'))
n1 = indata[i] - 0x57;
else if ((indata[i] >= 'A') && (indata[i] <= 'F'))
n1 = indata[i] - 0x37;
else
n1 = indata[i] - 0x30;
x= indata[i+1] ;
if ((indata[i + 1] >= 'a') && (indata[i + 1] <= 'f'))
n2 = indata[i + 1] - 0x57;
else if ((indata[i + 1] >= 'A') && (indata[i + 1] <= 'F'))
n2 = indata[i + 1] - 0x37;
else
n2 = indata[i + 1] - 0x30;
n = n1 * 16 + n2;
buff[j] = n;
}
if (j > blen)
return -1;
return j;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -