⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 converter.c

📁 《ARM与嵌入式系统基础教程》
💻 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 + -