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

📄 bintoasc.c

📁 abstract rtos
💻 C
字号:
#include "syscfg.h"#ifdef __cplusplus#if __cplusplusextern "C"{#endif #endif #include "aos.h" U8 QuestionMarkToa( U8 ucChar );U8 aToQuestionMark( U8 ucChar );U8 QuestionMarkToa( U8 ucChar ){    if (ucChar == 0x3F)     {        return 0x61;        }    return ucChar;}U8 aToQuestionMark( U8 ucChar ){    if (ucChar == 0x61)     {        return 0x3F;        }        return ucChar;}S32 BinToAsc(U8 *uc_Bin, S32 i_BinLen, S8 *c_AscBuf, S32 i_AscLen){	U32 l;	S32 i;#ifdef DEBUG	if(i_BinLen % 3 != 0)		return -1;	if(i_AscLen < (i_BinLen / 3) * 4 )		return -1;#endif	for(i = 0; i < i_BinLen; i += 3)	{		l = *(uc_Bin)++ << 8;		l |= *(uc_Bin)++; 		l <<= 8;		l |= *(uc_Bin)++;		*c_AscBuf ++ = (S8)QuestionMarkToa((U8)(((l >> 18) & 0x3f) + 0x21));		*c_AscBuf ++ = (S8)QuestionMarkToa((U8)(((l >> 12) & 0x3f) + 0x21));		*c_AscBuf ++ = (S8)QuestionMarkToa((U8)(((l >> 6) & 0x3f) + 0x21));		*c_AscBuf ++ = (S8)QuestionMarkToa((U8)((l & 0x3f) + 0x21));	}    (void)i_AscLen;    	return 0;}S32 AscToBin(U8 *uc_Bin, S32 i_BinLen, S8 *c_AscBuf, S32 i_AscLen){	S32 i;	U32 ul_Value;	for(i = 0; i < i_AscLen; i += 4)	{		ul_Value = aToQuestionMark(*(U8 *)c_AscBuf) - 0x21;		ul_Value <<= 6;		c_AscBuf ++;		ul_Value |= aToQuestionMark(*(U8 *)c_AscBuf) - 0x21;		c_AscBuf ++;		ul_Value <<= 6;		ul_Value |= aToQuestionMark(*(U8 *)c_AscBuf) - 0x21;		c_AscBuf ++;		ul_Value <<= 6;		ul_Value |= aToQuestionMark(*(U8 *)c_AscBuf) - 0x21;		c_AscBuf ++;		*(uc_Bin + 2) = (U8)(ul_Value & 0xff);		ul_Value >>= 8;		*(uc_Bin + 1) = (U8)(ul_Value & 0xff);		ul_Value >>= 8;		*uc_Bin = (U8)(ul_Value & 0xff);		uc_Bin += 3;	}        (void)i_BinLen;    	return AOS_SUCC;}#ifdef __cplusplus#if __cplusplus}#endif #endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -