📄 converter.c
字号:
//*----------------------------------------------------------------------------
//* 文件名 : converter.c
//* 功能描述 : 编码转化工具
//* 作者 : 龙一
//* 版本 : 1.0
//* 建立日期、时间 : 2005/06/24 10:21
//* 最近修改日期、时间 :
//* 修改原因 :
//*----------------------------------------------------------------------------
//*------------------------------ include file --------------------------------
#include "/uCOS-II/ucos_ii.h"
#include "converter.h"
//*--------------------- Constants & Variable definition ----------------------
//*----------------------------------------------------------------------------
//* 函数名称 : PowerCal
//* 功能描述 : 幂运算
//* 入口参数 : <s32Original>[in] 被乘方数
//* : <s32Power>[in] 幂运算次数
//* 出口参数 : 无
//*----------------------------------------------------------------------------
INT32S s32PowerCal(INT32S s32Original, INT32S s32Power)
{
INT32S i, __s32RtnVal = 0;
if(s32Power > 0)
{
__s32RtnVal = s32Original;
for(i=1; i<s32Power; i++)
{
__s32RtnVal *= s32Original;
}
}
else
__s32RtnVal = 1;
return __s32RtnVal;
}
//*----------------------------------------------------------------------------
//* 函数名称 : ConvertArabNumToHexArray
//* 功能描述 : 转换阿拉伯数字为16进制
//* 入口参数 : <pu8Dest>[out] 指向接收地址的指针
//* : <pszSrc>[in] 指向被转换内容的指针
//* : <u32Len>[in] 被转换内容的长度
//* 出口参数 : 无
//*----------------------------------------------------------------------------
void vConvertArabNumToHexArray(INT8U *pu8Dest, const INT8S *pszSrc, INT32S s32Len)
{
INT32S i;
for(i=0; i<s32Len; i++)
{
*(pu8Dest+i) = *(pszSrc + i) - 0x30;
}
}
//*----------------------------------------------------------------------------
//* 函数名称 : s32GetIntFromArray
//* 功能描述 : 从一个字节数组获得整型数据,比如{0x01, 0x02, 0x03}转换为十进制的123
//* 入口参数 : <lpszSrc>[in] 指向源数组
//* : <s32Len>[in] 数组长度
//* 出口参数 : 返回整型数据
//*----------------------------------------------------------------------------
INT32S s32GetIntFromArray(INT8S *ps8Src, INT32S s32Len)
{
INT32S i, __s32RtnVal = 0, __s32Len = s32Len;
for(i=0; i<s32Len; i++)
__s32RtnVal += ((ps8Src[i] - 0x30) * s32PowerCal(10, --__s32Len));
return __s32RtnVal;
}
//*----------------------------------------------------------------------------
//* 函数名称 : ConvertStringToOneByte_Hex
//* 功能描述 : 转换一个字符串(如"255",不超过八位长度)为一个16进制字节
//* 入口参数 : <pszSrc>[in] 指向源内容的指针
//* : <s8Len>[in] 被转换内容的长度(以字节为单位)
//* 出口参数 : 返回一个8位的16进制数
//*----------------------------------------------------------------------------
INT8U u8ConvertStringToOneByte_Hex(INT8S *pszSrc, INT8S s8Len)
{
INT8S i, k;
INT16U __u16RtnVal = 0;
if(s8Len > 4)
return 0xFF;
for(i=s8Len, k=0; i>0; i--, k++)
{
__u16RtnVal += ((*(pszSrc + k) - 0x30) * (s32PowerCal(10, i-1)));
if(__u16RtnVal > 0xFF)
return 0xFF;
}
return (INT8U)__u16RtnVal;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -