求:两个函数的例子
求以下两个函数的测试代码
//***************************************************************
//* 函数名 : PackBCD
//* 功能描述 : 把字符串转换为BCD码
//* 入口参数 : char *InBuf 转入字符串(ASCII)
//* int len 转出字符串长度
//* 出口参数 : unsigned char *OntBuf 转出字符串(BCD)
//* 返回值 : -1 失败, 0 成功
//***************************************************************
int PackBCD( char *InBuf, unsigned char *OutBuf, int Len )
{
int rc; // Return Value
int ActiveNibble; // Active Nibble Flag
char CharIn; // Character from source buffer
unsigned char CharOut;// Character from target buffer
rc = 0; // Assume everything OK.
ActiveNibble = 0; // Set Most Sign Nibble (MSN)
for ( ; (Len > 0); Len--, InBuf++ )
{
CharIn = *InBuf;
if ( !isxdigit ( CharIn ) ) /* validate character */
{
rc = -1;
}
else
{
if ( CharIn > '9')
{
CharIn += 9; /* Adjust Nibble for A-F */
}
}
if ( rc == 0 )
{
CharOut = *OutBuf;
if ( ActiveNibble )
{
*OutBuf++ = (unsigned char)( ( CharOut & 0xF0) | ( CharIn & 0x0F) );
}
else
{
*OutBuf = (unsigned char)( ( CharOut & 0x0F) | ( (CharIn & 0x0F) << 4) );
}
ActiveNibble ^= 1; // Change Active Nibble
}
}
return rc;
}
//***************************************************************
//* 函数名 : UnpackBCD
//* 功能描述 : BCD码转为字符串
//* 入口参数 : unsigned char *InBuf 转入字符串(BCD)
//* int len 转出字符串长度
//* 出口参数 : char *OntBuf 转出字符串(ASCII)
//* 返回值 : -1 失败, 0 成功
//****************************************************************
int UnpackBCD( unsigned char *InBuf, char *OutBuf, int Len )
{
int rc;
unsigned char ch;
int active, i;
rc = active = 0;
for ( i = 0; i < Len; i++ )
{
ch = *InBuf;
if ( active )
{
(*OutBuf=(ch&0xF))<10 ? (*OutBuf+='0') : (*OutBuf+=('A'-10));
InBuf++;
}
else
(*OutBuf=(ch&0xF0)>>4)<10 ? (*OutBuf+='0'):(*OutBuf+=('A'-10));
active ^= 1;
if ( !isxdigit ( *OutBuf ) ) //validate character
{
rc = -1;
break;
}
OutBuf++;
}
*OutBuf = 0;
return ( rc );
}
3ks
//***************************************************************
//* 函数名 : PackBCD
//* 功能描述 : 把字符串转换为BCD码
//* 入口参数 : char *InBuf 转入字符串(ASCII)
//* int len 转出字符串长度
//* 出口参数 : unsigned char *OntBuf 转出字符串(BCD)
//* 返回值 : -1 失败, 0 成功
//***************************************************************
int PackBCD( char *InBuf, unsigned char *OutBuf, int Len )
{
int rc; // Return Value
int ActiveNibble; // Active Nibble Flag
char CharIn; // Character from source buffer
unsigned char CharOut;// Character from target buffer
rc = 0; // Assume everything OK.
ActiveNibble = 0; // Set Most Sign Nibble (MSN)
for ( ; (Len > 0); Len--, InBuf++ )
{
CharIn = *InBuf;
if ( !isxdigit ( CharIn ) ) /* validate character */
{
rc = -1;
}
else
{
if ( CharIn > '9')
{
CharIn += 9; /* Adjust Nibble for A-F */
}
}
if ( rc == 0 )
{
CharOut = *OutBuf;
if ( ActiveNibble )
{
*OutBuf++ = (unsigned char)( ( CharOut & 0xF0) | ( CharIn & 0x0F) );
}
else
{
*OutBuf = (unsigned char)( ( CharOut & 0x0F) | ( (CharIn & 0x0F) << 4) );
}
ActiveNibble ^= 1; // Change Active Nibble
}
}
return rc;
}
//***************************************************************
//* 函数名 : UnpackBCD
//* 功能描述 : BCD码转为字符串
//* 入口参数 : unsigned char *InBuf 转入字符串(BCD)
//* int len 转出字符串长度
//* 出口参数 : char *OntBuf 转出字符串(ASCII)
//* 返回值 : -1 失败, 0 成功
//****************************************************************
int UnpackBCD( unsigned char *InBuf, char *OutBuf, int Len )
{
int rc;
unsigned char ch;
int active, i;
rc = active = 0;
for ( i = 0; i < Len; i++ )
{
ch = *InBuf;
if ( active )
{
(*OutBuf=(ch&0xF))<10 ? (*OutBuf+='0') : (*OutBuf+=('A'-10));
InBuf++;
}
else
(*OutBuf=(ch&0xF0)>>4)<10 ? (*OutBuf+='0'):(*OutBuf+=('A'-10));
active ^= 1;
if ( !isxdigit ( *OutBuf ) ) //validate character
{
rc = -1;
break;
}
OutBuf++;
}
*OutBuf = 0;
return ( rc );
}
3ks
...全文
相关推荐
单纯形法的简单例子:它是一个用单纯形法求两个变量函数的最小值的函数。-matlab开发
% 这是一个找到两个变量目标最小值的函数% 具有确定性零阶算法的函数:单纯形法。 % 输入变量是: %-fun:目标函数的内联函数%-init_point:单纯形法的起始点%-step_size: 单纯形的初始尺寸%toll: 单纯形维度上停止标准的容差%-numMaxIter:最大迭代次数的停止条件 % 输出变量是: %-valFunc:目标函数的最小值%-var_min: 最低点%-iter:迭代次数 %%%%%%%% 重要的 %%%%%%%%%%% % 要正确运行 Matlab 函数,必须先运行等高线图% 的目标函数。 您还可以查看:帮助countour。
PSO算法的简单例子:Matlab函数用PSO算法求目标函数的最小值-matlab开发
它使用粒子群优化算法找到变量函数的最小值。 % 输入参数为: % -func: 目标函数的最小化句柄%-numInd:这是群体元素的数量% -range: 必须创建元素的范围% -n_var: 函数变量的个数% -tolerance:它是群体停止标准的容忍度% 半径%-numIter:这是最大迭代次数% -pesoStoc:这是群体的可移动性% % 输出参数为: % -p_min: 最小点查找% -f_min:函数的最小值% -iter:处理的迭代次数
C语言函数的应用例子
c语言编写的函数例子,函数的用法,适合入门学者用
用C语言求幂函数和指数函数的方法
主要介绍了用C语言求幂函数和指数函数的方法,即pow()函数和sqrt()函数的使用,需要的朋友可以参考下
python 求一元函数极小值-第7章 函数的极小值.pdf
。。。


