str2bcd.cpp
来自「RS232串口通讯,主要用来设置芯片中的数据.」· C++ 代码 · 共 52 行
CPP
52 行
#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 + =
减小字号Ctrl + -
显示快捷键?